Get a list of categories ids

时间:2014-04-23 作者:Nikita

我正在使用基于自定义帖子类型的过滤器制作一个公文包。该过滤器必须只显示公文包中显示的帖子的类别,因为用户可以在短代码中通过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

1 个回复
SO网友:Nikita

好吧,在花了几个小时在这段代码上之后,我想我已经别无选择了。但就在我绝望地把问题贴在这里之后,我还是设法得到了结果。

$terms = wp_get_object_terms( $id_array, \'portfolio_category\' );

$new_array = array();
foreach($terms as $key => $term) {
    $new_array[$key] = $term->term_id;
}

$cat_ids = implode(\',\', $new_array);

$categories = get_categories(
    array(
        \'include\'                  => $cat_ids,
        \'taxonomy\'                 => \'portfolio_category\'
    )
);
也许有人可以对这个解决方案发表评论?

结束

相关推荐

使用Get_Categories显示类别的图像,或显示任何子帖子中的图像

我正在使用get\\u categories列出父类别的子类别。我想使用get\\u categories输出将图像添加到子类别。我可以从我正在使用get\\u categories的类别的子类别(即父类别的子类别)的任何帖子中获取特色图像。我不想显示任何其他孙儿信息,只想从每组类别的孩子中获得一张特色图片我当前使用的代码是$args = array(\'child_of\' => 1 ); $categories = get_categories($args); forea