$post = get_post(/* id */);
$content = $post->post_content;
但是,这将检索没有换行符的内容,并忽略所有
<p>
标签。在不剥离
<p>
标签的情况下检索帖子内容的正确方法是什么(如帖子页面或帖子编辑器的“文本”选项卡所示)?#1 楼
到目前为止,这两个答案都是正确的,但似乎有必要提供更彻底的答案。如果使用此方法:将段落标签添加到帖子内容的功能。
wpautop()
是挂接到the_content
的众多函数之一(有时包括插件函数),因此,如果您这样做:$content = wpautop( $post->post_content );
,您将获得发布内容的遍历
the_content
上的所有过滤器(默认情况下包括wpautop()
)。最后,如果您处于循环中,则可以执行以下操作:
$content = apply_filters('the_content', $post->post_content);
本质上是第二个代码段的包装器,但是当然看起来更好。 2018年9月1日更新:根据评论进行了修订。道具@timmb。
通常,我会说,这样做的首选“正确方法”是从头至尾,因为使用核心WP函数应该可以实现更多的向后兼容性(至少在理论上) 。唯一要做的其他决定就是您是否要允许WordPress和插件也修改帖子内容。如果是这种情况,请绝对使用第二个或第三个选项。
#2 楼
找到了解决方案:$content = apply_filters('the_content', $post->post_content);
#3 楼
使用p标签获取帖子内容的第二种方法是echo wpautop( $post->post_content );
评论
我认为此最终解决方案不正确。来自codex.wordpress.org/Function_Reference/get_the_content:“与the_content()的一个重要区别是get_the_content()不会通过'the_content'过滤器传递内容。”这是否暗示正确的方法是$ content = apply_filters('the_content',get_the_content);?
– Tim MB
17年9月1日11:00