サポート » 使い方全般 » 子カテゴリーのスラッグを取得したい(複数)

  • kaz

    (@kazumasa0713)


    お世話になります。
    分からないことがありますので教えてください。

    【やりたいこと】
    所属している全て(複数)の子カテゴリーのスラッグを取得して、classとして表示したい。

    [解決済み] 子カテゴリーのスラッグを取得したい

    上記で子カテゴリーにclass名を付ける方法は分かりましたが、
    こちらの方法ですと、一つのカテゴリーしか取得・表示されません。

    複数の子カテゴリーに所属している場合、
    所属している全てのカテゴリーのスラッグを取得し、
    classとして付加したい場合はどのようにしたらいいでしょうか??

    お忙しい中申し訳ありませんが、
    ご教授頂けますよう宜しくお願い致します。

1件の返信を表示中 - 1 - 1件目 (全1件中)
  • kaz

    (@kazumasa0713)

    ちょっと自分でいろいろ調べてやってみました。
    子カテゴリーの取得は分からないので
    the_category()
    を使い、所属するカテゴリーを全て取得することにしました。

    それで下記サイトを参考に以下のように作成したのですが、
    あと一歩のところでうまくいきません。
    どうか教えてください。

    =====================================
    【やりたいこと】
    the_category()で記事の所属カテゴリー(複数)を全て取得し、
    それぞれにclassをつけて表示したい。

    【参考サイト】
    http://wordpress.stackexchange.com/questions/91253/add-classname-to-the-category-function

    【現状】
    この通りfunction.phpに

    //the_category()にクラスを追加
    function add_class_callback( $result ) {
    
      $class = strtolower( $result[2] );
      $class = str_replace( ' ', '-', $class );
      // do more sanitazion on the class (slug) like esc_attr() and so on
    
      $replacement = sprintf( ' class="%s">%s</a>', $class, $result[2] );
      return preg_replace( '#>([^<]+)</a>#Uis', $replacement, $result[0] );
    
    }
    
    function add_category_slug( $html ) {
    
      $search  = '#<a[^>]+(\>([^<]+)\</a>)#Uuis';
      $html = preg_replace_callback( $search, 'add_class_callback', $html );
    
      return $html;
    }
    add_filter( 'the_category', 'add_category_slug', 99, 1 );

    を記載しました。
    そうすると以下のようにhtmlをはきだしました。
    (そのまま貼ります)

    <ul class="post-categories">
    <li><a href="" title="" rel="" class="おすすめコミック">おすすめコミック</a></li>
    <li><a href="" title="" rel="" class="大学生が主人公">大学生が主人公</a></li>
    <li><a href="" title="" rel="" class="学園ドラマ">学園ドラマ</a></li>
    <li><a href="" title="" rel="category tag" class="家族ドラマ">家族ドラマ</a></li>
    </ul>

    上記のように、なぜかclass名にカテゴリーのスラッグではなく、カテゴリー名が際ってしまいます。これにスラッグ名が入れば完璧なのですが。。。

    本当にお手上げ状態なので、
    どうか宜しくお願い致します。

1件の返信を表示中 - 1 - 1件目 (全1件中)
  • トピック「子カテゴリーのスラッグを取得したい(複数)」には新たに返信することはできません。