通过帖子ID获取WordPress内容的最佳/有效方式是什么?为什么?

时间:2016-11-10 作者:Ranuka

我只是想通过post-id获取WordPress内容。我找到了以下三种通过post-id获取WordPress内容的方法。(我在这个网站上找到了以下所有方法。)

方法01:

$content_post = get_post($my_postid);
$content = $content_post->post_content;
$content = apply_filters(\'the_content\', $content);
$content = str_replace(\']]>\', \']]>\', $content);
方法02:

$content=get_post_field(\'post_content\', $my_postid);
方法03:

$content=apply_filters(\'the_content\', get_post_field(\'post_content\', $my_postid));
从以上三种方法来看,什么是最佳/有效的方法?为什么?

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

您提供的用于比较的方法基本相同,只是API略有不同,以及the_content 应用过滤器。

在循环内get_the_content() 通常应该使用,它可以正确地处理拆分为页面等。

检索原始内容get_post_field() 通常是合适的,但任何进一步的处理(如the_content 过滤器)在很大程度上取决于检索内容的特定目的以及您将如何处理它。

请注意,许多扩展都是哑的,并且有各种各样的中断the_content 筛选器在循环外执行/多次。

相关推荐

检测Pre_Get_Posts函数中的AJAX调用

在前端,我有一个带有AJAX “加载更多”按钮。存档页的循环按以下顺序排序date 和ASC. 我在pre_get_posts 作用内部pre_get_posts 我使用的函数defined(\'DOING_AJAX\') && DOING_AJAX 检测何时有AJAX调用并应用订单过滤器。此外,如果是自定义post类型归档页面“workshop”,我想添加到条件语句中。不幸的是,它不起作用。这个pre_get_posts 功能:add_action(\'pre_get_posts\',