我正在使用基于自定义帖子类型的过滤器制作一个公文包。该过滤器必须只显示公文包中显示的帖子的类别,因为用户可以在短代码中通过id指定它们-[公文包id=“1,2,3”],而我无法获得该类别id的列表。
下面是一个简单的例子,说明我正在尝试做什么:
来自快捷码的自定义帖子ID列表:
$ids
相同ID的数组:
$id_array = explode(\',\', $ids)
必须返回类别ID列表的感兴趣的变量:
$cat_ids = ???
接下来,我们只获取具有所需id的类别:
$categories = get_categories(
array(
\'include\' => $cat_ids,
\'taxonomy\' => \'portfolio_category\'
)
);
最后显示我们的类别:
echo \'<ul>\';
echo \'<li><a href="#" data-filter="isotope-item" class="active">all</a></li>\';
foreach ($categories as $category) {
if( isset( $category->term_id ) ){
echo \'<li><a href="#" data-filter="\'.$category->category_nicename.\'">\'.$category->cat_name.\'</a></li>\';
}
}
echo \'</ul>\';
我得到的最令人震惊的是:
$cat_ids = wp_get_object_terms( $ids, \'portfolio_category\', array(\'orderby\' => \'name\', \'fields\' => \'ids\') );
但它只返回一个id