当前位置:代码狗 > WordPress > WP建站 > 正文

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

最近在写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函数,不会错用上。

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

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

赞(0) 打赏

评论 4

  1. #3

    这不是PV都被你败光了……

    缙哥哥3周前 (07-30)回复
  2. #2

    这个网上教程是很多的吧

    • 直到现在我都没找到教程,只能使用查表暂时解决。。。

      代码狗3周前 (07-30)回复
  3. #1

    学习了

    奶爸de笔记3周前 (07-30)回复
×

请作者吃根烤肠!

支付宝