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

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

    echo get_post_field('post_content', $postid);

效果很好, 但是, 如果帖子中包含任何短代码, 则这些短代码将无法正常工作。它仅将简码作为纯文本回显。

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

    <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

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

    this is caption 

有什么办法吗?

N.B:我正在使用Ajax获取内容


#1


这将起作用:

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

编辑

如果要在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));

当我在循环外进行操作时。

来源:

https://www.srcmini02.com/64500.html

微信公众号
手机浏览(小程序)
0
分享到:
没有账号? 忘记密码?