0

階層を使用して、すべてのカテゴリのリストを表示したいと思います。カテゴリがクリックされたときに jquery を使用して他のオブジェクトを操作したいので、デフォルトで追加されているリンクを削除する必要があります。

wp_list_categories はこれを見事に行い、自動的にサブカテゴリの階層を追加し、ネストされたリストを追加します。デフォルトで追加されるリンクが欲しくないだけです。

各カテゴリにそれぞれのページへのリンクを提供しない wp_list_categories に代わるものはありますか?

get_categories() を試したところ、カテゴリの階層が考慮されませんでした。

最新の WP バージョンを使用しています。

4

2 に答える 2

1

関数の出力はwp_list_categories()フィルターを介して渡され、結果の HTML を変更するために使用できます。

$output = apply_filters( 'wp_list_categories', $output, $args );

関数によって生成された HTML を実際に変更したい場合は、Walker_Categoryクラスを拡張できます。ここで適切な説明を見つけることができますhttp://scribu.net/wordpress/extending-the-category-walker.html

于 2012-11-28T00:06:37.960 に答える
0

Walker_Categoryクラスは、最終的に私のために働いたものです。カスタムリストを作成するために必要なすべてのレバレッジがありました。

しかし、私は最初の試みを投稿したかっただけで、それは単純なリストにはかなりうまくいきました。ネストされたループを使用します。

 <div class="tab-row">
    <?php $args = array(
        'taxonomy' => 'taxonomyName',
        'parent' => 0
    );

    $categories = get_categories($args);
    $catid = array();
     foreach($categories as $category)  {

         echo '<ul class="parent-tab"><div class="parent-item">' . $category->name . '</div>';
         array_push($catid, $category->term_id);


        echo '</ul>';
    } ?>
</div>  
<div class="child-row">
    <?php 
    $countStop = count($categories);
    $i = 0;
    while ($i < $countStop) {
        echo "<ul class='child-list'>";
        $args = array(
                    'taxonomy' => 'taxonomyName',
                    'parent'   => $catid[$i]
                  );

        $categories = get_categories($args);      
             foreach($categories as $category) {
               echo '<li class="child-item">' . $category->name .'</li>';
             }
         echo "</ul>";
         $i++;  
    }

    ?>
</div>

リンクを削除するget_categories()を使用し、最初のループで親のみを表示し、ネストされたループで親IDを取得してその親の子を引き出すことにより、分類階層を作成しました。

于 2012-11-28T20:38:24.650 に答える