カテゴリーを親・子でいくつか作りました。
ウィジェットに表示する際、デフォルトでは「親」だけの表示
その「親」をクリックすると「子」が展開する、
という風にしたいのですが、どこいじればいいのかわかりません。
例:親「東京都」子「足立区」「杉並区」「練馬区」
デフォルトで「東京都」だけ表示されている。
「東京都」をクリックすると
東京都
足立区
杉並区
練馬区
と表示される。
「category.php」のどこか、かとも思いましたがわかりません。
よろしくお願いします。
ウィジェットの設定で「階層を表示」にチェックを入れて階層が分かるようにリスト表示している事が前提条件になります。
1.以下のコードをテーマの「functions.php」に追記します。
function display_current_category_children($category_lists) { if(is_category()) { $category_lists = preg_replace('!(<li class="[^"]+ current-cat(?:-parent)??"><a[^>]+>[^<]+</a>\s*?(?:\([\d]+?\))?\r*\n*<ul class=\'children)\'>!u', '$1 current-children\'>', $category_lists); } return $category_lists; } add_filter( 'wp_list_categories', 'display_current_category_children' );
2.「style.css」に以下のCSSを追記します。(※優先順位が高くなるように最後に追記します。)
ul.children { display: none; } ul.current-children { display: block; }
※親・子の2階層まででしか確認していませんので、3階層目以下で動作しない場合は返信で知らせてください。
ウィジェットの設定で「階層を表示」にチェックを入れて階層が分かるようにリスト表示している事が前提条件になります。
1.以下のコードをテーマの「functions.php」に追記します。
function display_current_category_children($category_lists) { if(is_category()) { $category_lists = preg_replace('!(<li class="[^"]+ current-cat(?:-parent)??"><a[^>]+>[^<]+</a>\s*?(?:\([\d]+?\))?\r*\n*<ul class=\'children)\'>!u', '$1 current-children\'>', $category_lists); } return $category_lists; } add_filter( 'wp_list_categories', 'display_current_category_children' );
2.「style.css」に以下のCSSを追記します。(※優先順位が高くなるように最後に追記します。)
ul.children { display: none; } ul.current-children { display: block; }
※親・子の2階層まででしか確認していませんので、3階層目以下で動作しない場合は返信で知らせてください。
ありがとうございました。できました。
http://machiiku.jp/wordpress/collapsing-categories%E3%81%AF%E5%A4%A7%E9%87%8F%E3%81%AE%E3%82%AB%E3%83%86%E3%82%B4%E3%83%AA%E3%81%AB%E5%AF%BE%E5%BF%9C%E3%81%99%E3%82%8Bwordpress%E3%83%97%E3%83%A9%E3%82%B0%E3%82%A4%E3%83%B3/
カテゴリを折りたたむ
http://wordpress.org/extend/plugins/collapsing-categories/
こちらはどうでしょうか。
ありがとうございました。できました。
2012/12/26 10:51:19