• 解決済 machida

    (@machida)


    お世話になっております。

    sidebar.phpに

    <?php wp_list_categories('show_count=0&title_li='); ?>

    と書いて、

    <ul>
    	<li class="cat-item cat-item-XX"><a title="フーに含まれる投稿をすべて表示" href="http://XXXXXX/foo">フー</a></li>
    	<li class="cat-item cat-item-XX"><a title="バーに含まれる投稿をすべて表示" href="http://XXXXXX/bar">バー</a></li>
    	<li class="cat-item cat-item-XX"><a title="バズに含まれる投稿をすべて表示" href="http://XXXXXX/buz">バズ</a></li>
    </ul>

    と、出力させていますが、

    ※例として以下のカテゴリーの設定としています

    カテゴリー名:フー、スラッグ:foo
    テゴリー名:バー、スラッグ:bar
    テゴリー名:バズ、スラッグ:buz

    これを、

    <ul>
    	<li class="cat-item cat-item-XX foo"><a title="フーに含まれる投稿をすべて表示" href="http://XXXXXX/foo">フー</a></li>
    	<li class="cat-item cat-item-XX bar"><a title="バーに含まれる投稿をすべて表示" href="http://XXXXXX/bar">バー</a></li>
    	<li class="cat-item cat-item-XX buz"><a title="バズに含まれる投稿をすべて表示" href="http://XXXXXX/buz">バズ</a></li>
    </ul>

    という形で、li の class にカテゴリースラッグを含めて出力する方法を教えていただきたいです。

    宜しくお願い致します。

2件の返信を表示中 - 1 - 2件目 (全2件中)
  • 以下を、使用しているテーマの functions.php に追加すれば OK。

    <?php
    function my_list_categories( $output, $args ) {
      if ( preg_match_all( '/cat-item-([0-9]+[^0-9])/', $output, $matches ) ) {
        foreach ( $matches[0] as $key => $match ) {
          $category = get_category( intval( $matches[1][$key] ) );
          $output = preg_replace( '/' . $match . '/', esc_attr( $category->slug ) . ' ' . $match, $output );
        }
      }
    
      return $output;
    }
    add_filter( 'wp_list_categories', 'my_list_categories', 10, 2 );
    ?>

    諸事情により
    <li class="cat-item foo cat-item-XX ">
    の順序になります。

    トピック投稿者 machida

    (@machida)

    ありがとうございます!

    「wordpress3.0で共通のテーマとカテゴリスラッグを持った複数カテゴリのブログを作る」、というシチュエーションで、カテゴリIDをcssに使いたくなかったので、すごく助かります。

    早速試してみたいと思います。
    ありがとうございました!

2件の返信を表示中 - 1 - 2件目 (全2件中)
  • トピック「wp_list_categories()が出力するliのclassにカテゴリースラッグを含める方法」には新たに返信することはできません。