我想通过循环外的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