当前位置: 首页 > 知识库问答 >
问题:

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

颜欣怡
2023-03-14

我希望在循环之外通过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个答案

程修雅
2023-03-14

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

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

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

戎劲
2023-03-14

这将有助于:

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

编辑

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

 类似资料:
  • 我正在开发一个wordpress插件。我使用两种不同的自定义帖子类型,球员和球队。 玩家有相关的元字段:名字、姓氏和团队。 团队有相关的团队名称元字段。 在编辑一个特定的团队帖子时,我试图将当前拥有该团队名称的所有球员的数组发布到他们的元字段中以获取团队名称。我不知道怎么做。任何帮助或文章都会很有帮助。谢啦

  • 我已经制作了一个包含四个不同类别的主页,我认为它运行得很好,但是现在所有的帖子都和第一篇帖子有相同的内容。链接和特色图片都很好,但文本不知何故被覆盖了。 在此屏幕上,所有文本均相同: http://imagizer.imageshack.us/v2/800x600q90/713/m1j6.jpg 编辑:所以这适用于

  • 我曾试图在我的single.php文件中获取wordpress帖子的内容,我得到了标题和缩略图,但当我在代码中使用

  • 问题内容: 几天前,我发布了一个有关如何在我正在开发的自定义Wordpress模板中滚动到“单个帖子 ”的问题。我需要的是在单击特定链接时将单个帖子加载到定义的DIV中,然后向下滚动到包含新加载内容的DIV。考虑到Wordpress或任何其他CMS的动态内容性质,该链接的URL不能是绝对的。 不幸的是,那时没有任何具体的答案,所以我决定稍作观察。由于主要问题是动态加载内容,因此我决定放大如何在Wo

  • 我正在生成自己的Wordpress模板,并希望为用户提供一个前端表单(这样他们就不必登录Wordpress仪表板)来提交一些帖子内容。多亏了本教程,我的一切都正常了,但我想做一个增强。当前,当用户按submit时,数据存储在wordpress中,然后重定向到我选择的固定URL。与此相反,我只想清除表单数据并显示一条确认消息——我想是通过AJAX?我知道wordpress中有内置的AJAX功能,但我

  • 我试图在一个页面上显示来自两个类别的帖子(6) 我将如何将类别ID“7”添加到该代码中,以使所有内容都像上面解释的那样工作?提前谢谢!