サポート » 使い方全般 » カテゴリーリストのタグにclass名

  • 解決済 toggleMe

    (@toggleme)


    wp_list_categoriesでstyle=noneにしてaタグでリストを表示しています。
    そのときにaタグに各カテゴリが属する(子カテゴリは子カテゴリのスラッグ名)class名をつけたいのです。

    hoge
    ↓↓↓
    hoge
    hoge

    もし分かる方がいらっしゃいましたらよろしくお願いいたします。

5件の返信を表示中 - 1 - 5件目 (全5件中)
  • トピック投稿者 toggleMe

    (@toggleme)

    codeで囲むの忘れてました。

    <a href="hoge">hoge</a>
    ↓↓↓
    <a class="hoge" href="hoge">hoge</a>
    <a class="子hoge" href="hoge">hoge</a>

    こんにちは、

    どうして、クラス名の付与される style listをnoneに変更して、リンクだけの状態を作ってから、クラスを付与したいのですか?

    トピック投稿者 toggleMe

    (@toggleme)

    こういうことはできるのかなと疑問に思いまして…
    調べてみたのですが、たどり着かなかったのでこちらで質問させていただきました。

    知識として持っておきたかっただけで、
    今のところ、使用する予定はありません。

    よろしければ教えてください。

    get_categories

    を使ってカテゴリを取得
    $object->parentで、子カテゴリかどうかを判別してクラスをつけるとか

    wp_list_categories()なら、

    http://codex.wordpress.org/Template_Tags/wp_list_categories

    walker 引数に 作成したクラスを指定して、

    (個人的なメモです)
    http://tenman.info/labo/snip/archives/1528

    カスタマイズした形式のリストにするとか、

    wp_list_categories() を echo 0 にして、変数に代入して、正規表現で置換するといった方法などがあると思います。

    トピック投稿者 toggleMe

    (@toggleme)

    これでいけました!
    walkerの存在を知らず色々検索していたら
    これで無事想い通りになりました。

    <?php
    	$categories = get_terms('category','orderby=order&order=ASC&parent=0');
    
    	// 親カテゴリ
    	foreach ( $categories as $cat ) {
    		$parentlink = get_category_link($cat->term_id);
    		echo "\n";
    		echo '<h3><a href="'.$parentlink.'">'.esc_html($cat->name).'</a></h3>';
    		$children = get_terms('category','hierarchical=0&orderby=order&order=ASC&child_of='.$cat->term_id);
    
    		//子カテゴリ
    		foreach ( $children as $child ) {
    			$childlink = get_category_link($child->term_id);
    			$catslug = $child->slug;
    			echo "\n\t";
    			echo '<a href="'.$childlink.'">'. esc_html($child->name).'</li>';
    			}
    		}
    ?>

    リストタイプはこれ

    <?php
    	$categories = get_terms('category','orderby=order&order=ASC&parent=0');
    
    	// 親カテゴリ
    	foreach ( $categories as $cat ) {
    		$parentlink = get_category_link($cat->term_id);
    		echo "\n";
    		echo '<h3><a href="'.$parentlink.'">'.esc_html($cat->name).'</a></h3>';
    		$children = get_terms('category','hierarchical=0&orderby=order&order=ASC&child_of='.$cat->term_id);
    
    		if($children) {
    			echo "\n";
    			echo "<ul>";
    			//子カテゴリ
    			foreach ( $children as $child ) {
    				$childlink = get_category_link($child->term_id);
    				$catslug = $child->slug;
    				echo "\n\t";
    				echo '<li class="'.$catslug.'"><a href="'.$childlink.'">'. esc_html($child->name).'</a></li>';
     			}
     		}
     	}
     	echo "\n";
     	echo "</ul>";
    ?>

    いままでのもやもやが取れましたありがとうございます。

5件の返信を表示中 - 1 - 5件目 (全5件中)
  • トピック「カテゴリーリストのタグにclass名」には新たに返信することはできません。