让代码更简单

WordPress文章内容有分页获取全部内容解决办法

重要:本文最后更新于2019-07-30 08:29:03,某些文章具有时效性,若有错误或已失效,请在下方留言或联系代码狗

最近在写WordPress的APP程序,遇到一个小问题记录下。今天我在写APP接口时取文章内容数据发现,如果文章中使用了<!--nextpage-->进行分页的话,取出来的数据并不完整,准确的说只能取到第一页的数据。无论是get_post还是wp_query都试过。后来发现是WordPress的输出内容函数都执行了转换,所以不能有这些关键词。

WordPress教程

WordPress教程

我这人有点死脑筋,写这个接口我并不想自己写查表这些操作,所以我想使用WordPress自带的函数来处理。然而我百度了好久,各大交流群里问了个遍。都没找到解决办法,于是只好使用了终极手段,直接查表。

使用wp_query方式可以看到查询数据库的语句,你也可以自己写。如下:

复制
SELECT wp_posts.* FROM wp_posts WHERE 1=1 AND wp_posts.ID = " . $id . " AND wp_posts.post_type = 'post' ORDER BY wp_posts.post_date DESC

其中的id是我需要传入的参数。这句sql语句其实有点长,如果你会写sql,你也可以精简下。

接下来是重点了,由于分页标识是存在数据库中的,所以如果我们查询得到的文章内容不处理还是会被WordPress分页,所以我们需要使用PHP的字符串替换或者正则匹配将分页符删掉,这里为了方便,就用字符串替换了。

复制
$content = str_replace("<!--nextpage-->", "", $singlepost->post_content);

你以为到此就完了吗?还早呢!为了不让WordPress文章中的短代码失效,我们还需要执行下WordPress的短代码转换,让它把WordPress文章内容全部转换为HTML。

复制
$content = apply_filters('the_content', $content);
$content = str_replace(']]>', ']]>', $content);

后面这个替换我没看懂,不过我是复制的WordPress的the_content函数,不会错用上。

现在应该没问题了,使用查表的方式让我有点膈应,始终感觉哪儿不妥……

感觉很棒!可以赞赏支持我哟~

1 打赏

评论 (5)

登录后评论
这不是PV都被你败光了……
还有点
这个网上教程是很多的吧
直到现在我都没找到教程,只能使用查表暂时解决。。。
学习了
QQ咨询 邮件咨询 狗哥推荐