如何通过帖子ID获取WordPress帖子内容?

#1 楼

变得简单

$my_postid = 12;//This is page id or post id
$content_post = get_post($my_postid);
$content = $content_post->post_content;
$content = apply_filters('the_content', $content);
$content = str_replace(']]>', ']]>', $content);
echo $content;


评论


特定字段的简写:$ content = get_post_field('post_content',$ my_postid);

–稀有
2011-2-17在21:39

@Bainternet I'm just curious here... what is the part $content = str_replace(']]>', ']]>', $content); do? what's the purpose of it there?

– Average Joe
Nov 4 '13 at 11:02



@AverageJoe其基本搜索和替换。使用the_content()时,将过滤内容。由于在上面的示例中直接检索了内容,因此作者使用搜索和替换来确保内容安全。

– Harish Chouhan
2014年3月18日在9:21

也许您还需要do_shortcode(),例如$ content = do_shortcode(get_post_field('post_content',$ my_postid));

–塞浦路斯
18 Mar 9 '18 at 13:47

无论如何,有保留“ more_link”的内容吗?

–user2128576
18年7月5日在1:46

#2 楼

echo get_post_field('post_content', $post_id);


评论


最好像echo echo apply_filters('the_content',get_post_field('post_content',$ post_id));那样做。例如,当使用qTranslate时,您的解决方案是不够的。

– Karel Attl
2013年1月17日7:10



如果范围是获取帖子内容,就像在WordPress编辑页面中那样,这是最佳答案。

–mcont
2014年8月8日13:21

如果没有@KarelAttl的代码,则缺少行中断。使用apply_filters代码,它可以完美地工作。

–亚历山大·陶本科布(Alexander Taubenkorb)
2015年9月23日下午12:23

apply_filters是一个不错的选择,但不适用于我当前的目的。两种选择都很好。

–KnightHawk
2015年11月5日在18:12

#3 楼

通过帖子ID获取WordPress帖子内容的另一种方法是:

$content = apply_filters('the_content', get_post_field('post_content', $my_postid));



为了完成此答案,我还在此答案中添加了方法01和方法02。 。

方法01(贷记给bainternet):

$content_post = get_post($my_postid);
$content = $content_post->post_content;
$content = apply_filters('the_content', $content);
$content = str_replace(']]>', ']]>', $content);


方法02(贷记给realmag777):

$content = get_post_field('post_content', $my_postid);


方法03:

$content = apply_filters('the_content', get_post_field('post_content', $my_postid));


阅读通过帖子ID获取WordPress内容的最佳/有效方法是什么,为什么?问题,以了解应该从以上三个中使用哪个。

#4 楼

如果您需要多个帖子,请使用get_posts()。它只保留主查询,并返回易于循环的帖子数组。