我有两个名为'project'和'client'的自定义帖子类型,它们共享一个名为'sector'的分类。
if (!is_taxonomy('sector')) {
register_taxonomy(
'sector', array('project', 'client'), array(
'hierarchical' => true,
'label' => 'Sector',
'query_var' => true,
'rewrite' => array( 'slug' => 'sector' ),
'with_front' => false
) );
wp_insert_term('Health', 'sector');
wp_insert_term('Clubs', 'sector');
wp_insert_term('Commercial', 'sector');
}
我创建了一个带有侧栏导航的分类法归档模板,该导航列表使用以下命令列出了我的分类法归档的链接:
//list terms in a given taxonomy using wp_list_categories
$orderby = 'name';
$show_count = 1; // 1 for yes, 0 for no
$pad_counts = 0; // 1 for yes, 0 for no
$hierarchical = 0; // 1 for yes, 0 for no
$show_option_none='';
$title = '';
$args_sector = array(
'taxonomy' => 'sector',
'orderby' => $orderby,
'show_count' => $show_count,
'pad_counts' => $pad_counts,
'hierarchical' => $hierarchical,
'title_li' => $title
);
<ul id="sideNav" class="rightSubMenu">
<h3 class="rightSubNav">SECTOR</h3>
<ul id="sideNav" class="rightSubMenu">
<?php wp_list_categories( $args_sector ); ?>
</ul>
</ul>
问题是如果我有一个链接到'club'的项目和一个链接到'club'的客户端,输出计数显示2.此外,存档页面显示2个帖子 - 1个用于项目,1个用于客户端。但是只有一个项目。
我主要关注项目页面,并希望按我的“项目”帖子类型过滤结果。我查看了codex,wp_list_categories函数似乎不接受参数来执行此操作。
有人可以帮忙吗?有更好的方法吗?
答案 0 :(得分:0)
我遇到过类似的问题。我这样做是通过克隆wp_list_categories函数,给它一个不同的名称并在行后输入这段代码:$ categories = get_categories($ r):
foreach ($categories as $key => $category){
$temp = array ( 'post_type'=>$r['type'], 'tax_query' => array(
array (
'taxonomy' => $category->taxonomy,
'field' => 'slug',
'terms' => $category->slug
)
)
);
$pauli = new wp_query($temp);
if($pauli->post_count==0){
unset($categories[$key]);
}
}
正如您所看到的,它会删除不具有您需要的任何帖子类型的类别,然后按照wp_list_categories正常运行来继续该过程。