我编写了自己的函数来列出某个分类法的所有分类法术语…
function wr_list_taxonomy($taxonomy, $orderby, $hierarchical) {
$show_count = 0;
$pad_counts = 0;
$title = \'\';
$args = array(
\'taxonomy\' => $taxonomy,
\'orderby\' => $orderby,
\'show_count\' => $show_count,
\'pad_counts\' => $pad_counts,
\'hierarchical\' => $hierarchical,
\'title_li\' => $title
);
return wp_list_categories( $args );
}
所以这个函数的工作原理与
wp_list_categories()
一旦我进入学期页面,还会推出一个“当前猫”课程。
想象一下我的URL结构…
www.mysite.com/term //current-cat works perfect
www.mysite.com/term/a-post-associated-with-this-term //current-cat not assigned
一旦我在一个岗位上,但如上文所述,在这个“类别”内,是否有机会让“当前猫”课程也发挥作用?
update:
这个wr_list_taxonomy()
函数在my中调用header.php
文件
<nav id="main-nav">
<ul class="wr-nav" role="navigation">
<?php
global $post;
$taxonomy = \'event_type\';
$term_id = 0;
$terms = wp_get_post_terms( $post->ID, $taxonomy, array("fields" => "ids") );
if ( !empty($terms) )
$term_id = $terms[0];
wr_list_taxonomy($taxonomy, \'name\', 1, $term_id); ?>
</ul>
</nav>
我更新了
wr_list_taxonomy()
功能到您的版本。
此外,我还有另一个功能,可能与我想要的东西相关…
/**
* Add category-slug as classname to wp_list_categories()
*/
add_filter(\'wp_list_categories\', \'add_slug_css_list_categories\', 10, 2);
function add_slug_css_list_categories($list, $args) {
if ( $args["taxonomy"] == "event_type" ) {
$cats = get_terms(\'event_type\');
$class = \'term term-\';
} else {
$cats = get_categories();
$class = \'category-\';
}
foreach( $cats as $cat ) {
$find = \'cat-item-\' . $cat->term_id . \'"\';
$replace = $class . $cat->slug . \'"\';
$list = str_replace( $find, $replace, $list );
$find = \'cat-item-\' . $cat->term_id . \' \';
$replace = $class . $cat->slug . \' \';
$list = str_replace( $find, $replace, $list );
}
return $list;
}
此函数将“类别slug”添加到每个
<li>
中的项目
wr_list_taxonomy()
作用这很好用。
我只需要在单身时也申请“当前猫”课程。与我所在的“当前类别”关联的php(post)网站。
最合适的回答,由SO网友:Sisir 整理而成
是的,偏离航线。您只需要获取术语id并将其放在args上。检查wp_list_categories()
function wr_list_taxonomy($taxonomy, $orderby, $hierarchical, $cat_id) {
$show_count = 0;
$pad_counts = 0;
$title = \'\';
$cat_id = 0;
$args = array(
\'taxonomy\' => $taxonomy,
\'orderby\' => $orderby,
\'show_count\' => $show_count,
\'pad_counts\' => $pad_counts,
\'hierarchical\' => $hierarchical,
\'title_li\' => $title,
\'current_category\' => $cat_id
);
return wp_list_categories( $args );
}
您必须传递类别id或术语id。才能使其工作。
How Do You Get Category ID?
例如:
global $post;
$taxonomy = \'my-tax\';
$term_id = 0;
if(is_singular(\'post\')){ // post type is optional.
$terms = wp_get_post_terms( $post->ID, $taxonomy, array("fields" => "ids") );
if(!empty($terms))
$term_id = $terms[0]; //we need only one term id
}
wr_list_taxonomy($taxonomy, $orderby, $hierarchical, $term_id);
这只是一个简单的例子,还有其他方法可以做到这一点。这取决于您在哪里使用代码。