最近发现如果文章中使用了<!–nextpage–>进行分页的话,取出来的数据并不完整,准确的说只能取到第一页的数据。无论是get_post还是wp_query都试过。后来发现是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函数,不会错用上。

相关新闻

发表回复

您的电子邮箱地址不会被公开。

联系我们

联系我们

151-1101-0018

在线咨询:
邮件:30115776@qq.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信
关注微信
分享本页
返回顶部