WordPress(使用函数get_post_field()获取帖子内容时,短代码不起作用)

我想通过循环外的id获取帖子内容, 所以我正在使用以下代码:

echo get_post_field('post_content', $postid);

效果很好, 但是, 如果帖子中包含任何短代码, 则这些短代码将无法正常工作。它仅将简码作为纯文本回显。
示例:我在编辑器中使用以下代码来显示图像和图像中的标题文本:
< img class="size-medium wp-image-23 " src="http://localhost/wordpress/wp-content/uploads/2014/03/Desert-300x225.jpg" width="300" height="225" /> this is caption

但是, 当我使用get_post_field()函数获取此帖子内容时, 它不显示标题文本, 而是显示:
this is caption

有什么办法吗?
N.B:我正在使用Ajax获取内容
#1这将起作用:
echo do_shortcode(get_post_field('post_content', $postid));

编辑
【WordPress(使用函数get_post_field()获取帖子内容时,短代码不起作用)】如果要在Ajax中强制输出简码, 请参见在AJAX请求中运行简码
#2你需要在显示内容之前对其进行过滤, 因此请尝试以下代码:
echo apply_filters( 'the_content', get_post_field('post_content', $postid) );

更新:你无法使用挂接到wp_ajax的ajax调用来输出短代码。 WP Ajax通过admin.php运行公开调用和封闭调用。这意味着你无权访问整个wp环境, 例如/wp-includes/shortcodes.php中的do_shortcode()。
#3这对我有用。
回声apply_filters(‘ the_content’ , get_post_field(‘ post_content’ , $ postid));
当我在循环外进行操作时。

    推荐阅读