无需加载到模板中即可获取用于发布的标记

时间:2014-06-13 作者:Jeff

我正在编写一个短代码插件,根据传递到短代码中的一些参数显示帖子。我有wp_query 为了获取帖子,现在我正试图根据主题的模板文件获取帖子的标记。

本质上,get_template_part 正是我想要的。。。但它直接将标记加载到模板中。我想获取内容的标记,执行一些后处理,然后返回短代码的标记。基本上,

$listings = new WP_Query(...);
while ( have_posts() ) {
    $markup .= get_template_part(\'content\', $post->post_type);
}
return $markup
但这显然不是get_template_part 作品如何在不将标记呈现到页面的情况下获取帖子的标记?

2 个回复
最合适的回答,由SO网友:Jeff 整理而成

我想不出一个WordPress的方法来做到这一点,看看WP的来源,看起来这可能永远都不可能实现。然而,通过将标准输出重定向到缓冲区并将缓冲区加载到变量中,我能够使用vanilla PHP获得解决方案。

$listings = new WP_Query(...);
ob_start();
while ( have_posts() ) {
    get_template_part(\'content\', $post->post_type);
}
$markup = ob_get_contents();
ob_end_clean();
return $markup

SO网友:Caspar

如果您只是在将帖子加载到模板之前查找其内容,那么您可能正在查找get_the_content().

结束

相关推荐

AJAX in wordpress theme loop

我正试图就我的主题提出一个AJAX请求。我已经知道wordpress很好地处理AJAX,但不能直接处理主题文件。它使用管理ajax。php用于此。我在这方面工作了很长时间,真的不知道该把代码放在哪里。我知道需要将信息放在管理ajax中。php,函数。并且必须指定用户是否未登录。有人能帮我写代码吗?HTML:<article class=\"delivery-individual\"> <!-- # CONTENT HERE --> </arti