ワードプレスで特定の親カテゴリーを持つ子カテゴリーをすべて取得、そのカテゴリーリンクを出力する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ドクターまでお気軽にお送りください