如何在不剥离<p>标签的情况下获得‘post_content’?

时间:2014-10-16 作者:Lisandro Vaccaro

我正在尝试检索特定帖子的帖子内容:

$post = get_post(/* id */);
$content = $post->post_content;
但是,这将检索不带换行符的内容,并忽略所有<p> 标签。

在不剥离<p> 标签(如帖子页面或帖子编辑器“文本”选项卡上所示)?

3 个回复
最合适的回答,由SO网友:mrwweb 整理而成

到目前为止,这两个答案都是正确的,但似乎需要一个更彻底的答案。

如果使用此选项:

$content = wpautop( $post->post_content );
您正在应用向帖子内容添加段落标记的函数。wpautop() 是许多钩住的函数(有时包括插件函数)之一the_content, 因此,如果您这样做:

$content = apply_filters(\'the_content\', $post->post_content);
您正在通过上的任何筛选器运行帖子内容the_content 其中包括wpautop() 默认情况下。

最后,如果你在循环中,你可以这样做:

$content = apply_filters( \'the_content\', get_the_content() );
它本质上是第二个代码段的包装器,但它看起来当然有点好看 2018年9月1日更新:根据comment. 道具@timmb。

一般来说,我认为最好的“正确方法”是从最后一个到第一个,因为使用核心WP函数应该能够实现更多的向后兼容性(至少理论上是这样)。接下来要做的唯一其他决定是是否允许WordPress和插件也修改帖子内容。如果是这样,一定要使用第二个或第三个选项。

SO网友:Lisandro Vaccaro

找到解决方案:

$content = apply_filters(\'the_content\', $post->post_content);

SO网友:DINESH BHIMANI

使用p标记获取帖子内容的第二种方法是

echo wpautop( $post->post_content );

结束

相关推荐

Backup blog posts only

我有一个Wordpress网站,有很多页面和博客帖子。我想创建一个新网站,但保留所有博客帖子,只有博客帖子,没有页面。我怎样才能做到这一点?当我从mysql备份数据库时,所有内容都会传递到新站点,但我只想备份博客帖子。WordPress Backups