最近发现如果文章中使用了<!–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函数,不会错用上。
暂无评论内容