ワードプレスで特定の親カテゴリーを持つ子カテゴリーをすべて取得、そのカテゴリーリンクを出力するPHPコードをご紹介いたします。
get_categoriesでカテゴリーを取得
get_categories関数は、ワードプレスのカテゴリーを配列で取得する関数です。この関数に、親カテゴリーのIDを指定することでその親カテゴリーを持つすべての子カテゴリーを取得することが可能です。
※このコードはテーマのそれぞれのページのPHPプログラムなどで動作します
$category_args_query = array( 'orderby' => 'name',//名称で並び替え 'parent' => 1, //親カテゴリーのID ); $child_categories = get_categories( $category_args_query );
親カテゴリーのIDは、ワードプレスの管理画面の投稿>カテゴリー>それぞれのカテゴリーの編集画面のURLの&tag_ID=数字 の部分です。
カテゴリーIDをget_category_by_slug関数でカテゴリーのスラグ(一意のURL部分)から取得することも可能です。
$cat = get_category_by_slug('カテゴリーのスラグ'); $catid = $cat->term_id; //カテゴリーIDを取得
foreach文でカテゴリーを順次リンク付きで出力する
上記で取得したカテゴリーをカテゴリーへのリンクで順次出力するには下記のようなコードを実装します。
<?php $category_args_query = array( 'orderby' => 'name',//名称で並び替え 'parent' => 1, //親カテゴリーのID ); $child_categories = get_categories( $category_args_query ); foreach ( $child_categories as $category ) { ?> <a href="<?php echo get_category_link($category->term_id ); ?> "> <?php echo $category->name; ?> </a> <?php } ?>
get_category_link($category->term_id ) にカテゴリーのIDを指定してそのリンクURLを取得しAタグに出力します。
$category->name; でカテゴリーの名称を出力しています。
このコードで任意の親カテゴリーを持つ、子カテゴリーをその名称でカテゴリーの記事一覧にリンクする要素が出力されます。
ご参考になりましたら幸いです。
WordPress ワードプレスサイトの修正やカスタマイズのコーディングのご相談・ご依頼はWPドクターまでお気軽にお送りください