查询在自定义邮件类型上使用的自定义分类的最佳方法

时间:2012-04-23 作者:JohnG

我在插件中有一个自定义帖子类型和一个自定义分类法。在编写CPT的输出循环时,我试图在输出每个CPT项目之前,在页面顶部输出分配给CPT项目的所有自定义税项目。

这就是我希望实现的目标:

税1 |税2 |税3 |税4。。。

CPT 1
CPT 2
CPT 3
。。。

我想wp_get_object_terms() 是获取税目的最佳方式,但我必须通过$post->ID 或者,在我的例子中,一个ID数组作为参数。

有没有一种方法可以只写一个循环来获取ID,完成它的工作,然后它们继续输出CPT项目,或者我必须写两个循环,一个先构建CPT post ID数组以传递到函数中,然后再写第二个循环来输出CPT项目?我是不是完全错过了什么?

谢谢你的帮助!

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

是的,有一种只使用一个循环的方法,但这可能会很混乱,并且会占用大量数据的资源,

要做到这一点,只需将所有输出存储为一个变量,并且仅在完成循环后才输出,例如:

$tax_array = array();
$output = \'\';
while ( have_posts()) {
    the_post();
    $output .=  \'<div class="item">\';
    $output .=  \'<div class="item_title">\'.get_the_title().\'</div>\';
    $output .=  \'<div class="item_content">\'.get_the_content().\'</div>\';
    $output .=  \'</div>\';

    $temp = wp_get_object_terms($post->ID,\'tax_name\');
    $tax_array = array_merge($tax_array,(array)$temp);
}
因此,在这个循环之后,您将所有项目都输出到$output$tax_array 保存您需要的所有术语的数组。

结束

相关推荐