カテゴリーアーカイブにサブカテゴリーリストを表示する方法

@niketcha

カテゴリーアーカイブページにサブカテゴリーリストを表示する方法です。

修正するのはarchive.phpで、使うのはwp_list_categories関数です。

以前はヘッダーナビをマウスオーバーするとサブカテゴリーがドロワー形式で表示されるようなデザインにしてたのですが、サブカテゴリーが増えてくるとダサいなーと思ったので。

Sponsored Link

サブカテゴリーリストを表示する方法

下記の画像が表示見本です。

archive.php
<?php if(is_category()){ ?>
	<?php if(get_category_children($cat)){ ?>	
		<ul class="child_cat_list"><?php wp_list_categories('title_li=&child_of='.$cat.'&show_count=true&orderby=count&order=desc'); ?></ul>
	<?php } ?>
<?php } ?>

is_categoryは現在のページがカテゴリーアーカイブページかどうかを確認する関数です。

get_category_childrenは子カテゴリーを持っているかどうかを確認する関数です。

$catという変数はWordPressのグローバル変数で、現在のカテゴリーIDが入っています。

wp_list_categoriesはリンク付きカテゴリーリストを表示する関数です。番号無し箇条書きリストで表示されます。

wp_list_categories関数の引数の説明

title_liリストのタイトル。デフォルトではCategoriesが設定されているので、非表示にしたいときは空の値を設定する。
child_ofこの引数でIDを指定すると、そのカテゴリーのサブカテゴリーのみが表示される。
show_countカテゴリーに属する投稿の件数を表示させるかどうか。デフォルトは非表示。
orderbyリストの表示基準を指定できる。ID、name(カテゴリー名)、slug、count(投稿数)term_groupのいずれかを指定する。デフォルトはカテゴリー名。
order表示順をASC(昇順)もしくはDESC(降順)から指定する。

他の引数についてはWord Press Codexを参照してください。

横並びで表示させたかったのでcssを次のように設定しました。

css
ul.child_cat_list li {
    display: inline;
}

-ウェブサイト構築, word press

コメントを残す

お名前もメールも入力は任意です。お気軽に指摘や質問などしていただけると嬉しいです。

Gravatarに登録すると、お好きな画像をアバターに設定できます。

Copyright© ニケッチャニッキ , 2017-2018 All Rights Reserved.