黒ブタBLOG

【コピペでOK!】記事とは関係ない特定の親カテゴリーを持った子(孫)カテゴリーの一覧を出力(表示)する方法|ワードプレス

どーもこんばんは、黒豚です。
前回は記事と関連している(記事が所属している)カテゴリーの一覧の出力方法をご説明しましたが、今回は記事とは無関係のカテゴリー一覧の表示方法を説明します。

どんな時に使うかと言いますと、トップページであったり、サイドやフッターなど常に表示したい部分で使うのが主ですね。
では早速コードを記述したいと思います。

今回の条件は親カテゴリーのIDが「2」番の子カテゴリー一覧を出していきます。
なお、今回はカスタムタクソノミーではなく、ノーマル(標準で用意されている普通のカテゴリー)を使用してます。

<?php
$term_id = 2;
$taxonomy_name = 'category';
$termchildren = get_term_children( $term_id, $taxonomy_name );
?>
<?php foreach ( $termchildren as $child ) :?>
<?php $term = get_term_by( 'id', $child, $taxonomy_name );?>
<dl class="clearfix">
<dt><a href="<?php echo get_term_link( $child, $taxonomy_name );?>"><?php echo $term->name;?></a></dt>
<dd>ID:<?php echo $term->term_id; ?><br>slug:<?php echo $term->slug; ?></dd>
</dl>

<?php endforeach;?>

たったこんだけで出力できます。
なお、こちらのコードではカテゴリーに所属記事がなくても出力されます。

【ここから追記】

↑の場合は自分で望んだ順番のソート機能はありません。
場合によっては好きな順番で並び替えをして、出力時もその並び替えた順番で出力したい時用に別のコードを書いていきます。

第一段階(準備)
開発するのも面倒くさいので良さそうで軽いプラグインを見つけます。
今回は「Category Order and Taxonomy Terms Order」という有名なカテゴリー並び替えのプラグインを使いたいと思います。
このプラグインの使い方に関しては色々な方が分かり易く記事にしてるようなのでそちらを参考にしてください。
※時間のある時に使い方を私も追記します。

↑のプラグインで並び替えをしたら、下記コードを入力(コピペでOK)。
※親カテゴリーのIDの部分だけご自身の親カテゴリーIDに変更してください

<ul class="clearfix">
<?php
$args=array(
'parent' => '3',//親カテゴリーのID
'orderby' => 'term_order',
//'order' => 'DESC',
'order' => 'asc',
);
$term_id = 3;//親カテゴリーのID
$taxonomy_name = 'category';
$termchildren = get_term_children( $term_id, $taxonomy_name );
$categories = get_categories($args);
foreach($categories as $category):
?>
<li><a href="<?php echo get_term_link( $category, $taxonomy_name );?>"><?php echo $category->cat_name;?></a></li>
<?php endforeach; ?>
</ul>

重要なポイントは

‘orderby’ => ‘term_order’,
‘order’ => ‘asc’,

です。
これが「Category Order and Taxonomy Terms Order」で並び替えた順番で出力するためのものです。
これで自由自在にカテゴリーの順番を変更できるようになりましたね♪

 

参考になった方、下記のイイネを押してもらえると私のやる気が出ます!