web-dev-qa-db-ja.com

現在表示されている分類法の子カテゴリにドロップダウンを作成する方法

現在の分類法の子/孫の用語を表示する方法を知り、それをドロップダウンに入れてオプションに値を追加できるようにする必要があります。

私は現在このコードを使って欲しいものを正確に表示していますが、ドロップダウンのオプションを変更することはできません -

<?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
$terms = get_terms("videoscategory");
 $count = count($terms);
 if ( $count > 0 ){
     echo "<select id='filter-select2' style='width:225px;'>";
echo "<option value='*' data-filter-value='' class='selected'>All items</option>";
     foreach ( $terms as $term ) {
         echo "<option value='.{$term->slug}'>" . $term->name . "</option>";
     }
     echo "</select>";
 }
?>

だから基本的に私が探しているのは最初のオプションに "value = '。{$ term-> slug}'"を追加する方法です。子用語を表示するコード。子カテゴリのドロップダウンの値として用語名を追加できるように、上記のコードのいずれかを変更する方法を教えてください。

1
Rich

ここから何の助けもなく大丈夫.......私はオプションを変更して表示されている現在の分類法の子用語を表示するためにwp_dropdown_categoriesの値を選択する方法を見つけ出すことができましたウォーカークラスを作成するファイル -

class SH_Walker_TaxonomyDropdown extends Walker_CategoryDropdown{

    function start_el(&$output, $category, $depth, $args) {
        $pad = str_repeat('&nbsp;', $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 .= '&nbsp;&nbsp;('. $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 );
?>
2
Rich