我目前正在使用此代码仅显示正在查看的当前类别的子项 -
<?php
//first get the current term
$current_term = get_term_by( 'slug', get_query_var( 'term' ), get_query_var( 'taxonomy' ) );
//then set the args for wp_dropdown_categories
$args = array(
'child_of' => $current_term->term_id,
'taxonomy' => $current_term->taxonomy,
'hide_empty' => 0,
'hierarchical' => true,
'depth' => 2,
'title_li' => '',
'show_option_all' => All,
'hide_if_empty' => true
);
wp_dropdown_categories( $args );
?>
我需要能够在开头和开头添加值和类。如何修改上述代码呢?
我不确定,但我认为我越来越近了。 -
<?php
function get_terms_dropdown($taxonomies, $args){
//first get the current term
$current_term = get_term_by( 'slug', get_query_var( 'term' ), get_query_var( 'taxonomy' ) );
$args = array(
'child_of' => $current_term->term_id,
'taxonomy' => $current_term->taxonomy,
'hide_empty' => 0,
'hierarchical' => true,
'depth' => 2,
'title_li' => '',
'show_option_all' => All,
'hide_if_empty' => true
);
$output ="<select name='".$term_slug."'><option selected='".$selected."' value='".$emptyvalue."'>Select a Category</option>'";
foreach($current_term as $term){
$output .="<option name='".$term_slug."' value='".$link."'>".$term_name."</option>";
}
$output .="</select>";
return $output;
}
echo get_terms_dropdown($taxonomies, $args);
?>
问题是下拉列表没有显示任何类别/术语,我缺少什么?
答案 0 :(得分:4)
好的我还回答了另外一个问题。我能够创建下拉过滤器,检索正在查看的当前分类页面的子项。对于对解决方案感兴趣的人,这里是---
首先,我必须在我的functions.php文件中创建一个walker类 -
class SH_Walker_TaxonomyDropdown extends Walker_CategoryDropdown{
function start_el(&$output, $category, $depth, $args) {
$pad = str_repeat(' ', $depth * 2);
$cat_name = apply_filters('list_cats', $category->name, $category);
if( !isset($args['value']) ){
$args['value'] = ( $category->taxonomy != 'category' ? 'slug' : 'id' );
}
$value = ($args['value']=='slug' ? $category->slug : $category->term_id );
$output .= "\t<option class=\"level-$depth\" data-filter-value=\".".$value."\"";
if ( $value === (string) $args['selected'] ){
$output .= ' selected="selected"';
}
$output .= '>';
$output .= $pad.$cat_name;
if ( $args['show_count'] )
$output .= ' ('. $category->count .')';
$output .= "</option>\n";
}
}
然后我将此代码放在我的侧边栏中 -
<?php
//first get the current term
$current_term = get_term_by( 'slug', get_query_var( 'term' ), get_query_var( 'taxonomy' ) );
//then set the args for wp_dropdown_categories
$args = array(
'walker'=> new SH_Walker_TaxonomyDropdown(),
'value'=>'slug',
'child_of' => $current_term->term_id,
'taxonomy' => $current_term->taxonomy,
'hide_empty' => 0,
'hierarchical' => true,
'depth' => 2,
'title_li' => '',
'id' => 'filter-select',
'class' => 'filter option-set',
'show_option_all' => All,
'hide_if_empty' => true
);
wp_dropdown_categories( $args );
?>