提问者:小点点

Wordpress:使用函数get_post_field()获取帖子内容时,快捷码不起作用


我希望在循环之外通过id获取帖子内容,因此我使用以下代码:

    echo get_post_field('post_content', $postid);

但是,如果帖子包含任何短代码,则短代码无法正常工作。它只以纯文本的形式重复短代码。

示例:我在编辑器中使用以下代码来显示图像中的图像和标题文本:

    [caption id="attachment_23" align="alignnone" width="300"]<img class="size-medium wp-image-23 " alt="" src="http://localhost/wordpress/wp-content/uploads/2014/03/Desert-300x225.jpg" width="300" height="225" /> this is caption[/caption]

但是,当我得到这篇文章的内容使用函数get_post_field(),而不是显示标题文本,它显示:

    [caption id="attachment_23" align="alignnone" width="300"]this is caption[/caption] 

有解决办法吗?

注意:我正在使用ajax获取内容


共2个答案

匿名用户

这将有助于:

echo do_shortcode(get_post_field('post_content', $postid));

编辑

如果您想在Ajax中强制输出短代码,请参阅在AJAX请求中运行短代码

匿名用户

您需要在显示内容之前对其进行筛选,因此请尝试以下代码:

echo apply_filters( 'the_content', get_post_field('post_content', $postid) );

更新:您不能使用挂接到wp_ajax中的ajax调用输出短代码。WP Ajax通过admin.php运行公共和关闭调用。这意味着您无法访问整个wp环境,例如do_shortcode(),它位于/wp-包括/shortcodes.php中。