【WordPress】最上位(第一階層)のカテゴリーのみを取得する方法

WordPressで最上位のカテゴリー(第一階層のカテゴリー)を取得する方法について詳しく解説します。この方法を使うことで、親カテゴリーがない最上位のカテゴリーを簡単に取得し、表示することができます。この記事では、コードの具体例とその説明を提供します。

スポンサーリンク

基本的なカテゴリー取得方法

まず、get_categories関数を使用して最上位のカテゴリーを取得する基本的な方法を紹介します。

<?php
// 最上位のカテゴリーを取得する
$args = array(
    'parent' => 0
);

$categories = get_categories($args);

// 取得したカテゴリーを表示する
foreach ($categories as $category) {
    echo '<p>' . $category->name . '</p>';
}
?>

このコードは、親カテゴリーがないカテゴリー(最上位のカテゴリー)を取得し、その名前を表示します。

カテゴリーを名前順でソートして取得する

カテゴリーを名前順で並べ替えて取得したい場合は、以下のようにします。

<?php
// 最上位のカテゴリーを取得する(名前順で並び替え)
$args = array(
    'parent' => 0,
    'orderby' => 'name',
    'order' => 'ASC'
);

$categories = get_categories($args);

// 取得したカテゴリーを表示する
foreach ($categories as $category) {
    echo '<p>' . $category->name . '</p>';
}
?>

このコードでは、カテゴリー名で昇順にソートして取得しています。

カテゴリーのリンクを表示する

カテゴリー名とともにそのリンクを表示したい場合は、以下のようにします。

<?php
// 最上位のカテゴリーを取得する
$args = array(
    'parent' => 0
);

$categories = get_categories($args);

// 取得したカテゴリーをリンク付きで表示する
foreach ($categories as $category) {
    echo '<p><a href="' . get_category_link($category->term_id) . '">' . $category->name . '</a></p>';
}
?>

get_category_link関数を使用して、各カテゴリーのリンクを取得し、リンク付きでカテゴリー名を表示します。

完全なコード例

全てをまとめた完全なコード例は以下となります。

<?php
// 最上位のカテゴリーを取得する(名前順で並び替え)
$args = array(
    'parent' => 0,
    'orderby' => 'name',
    'order' => 'ASC'
);

$categories = get_categories($args);

// 取得したカテゴリーをリンク付きで表示する
foreach ($categories as $category) {
    echo '<p><a href="' . get_category_link($category->term_id) . '">' . $category->name . '</a></p>';
}
?>

このコードを使用することで、WordPressサイトの最上位カテゴリーを取得し、それらの名前とリンクを表示できます。これにより、ユーザーはトップレベルのカテゴリーに簡単にアクセスできるようになります。

よくある質問(FAQ)

Q. 最上位(親なし)のカテゴリーのみ取得するコードは?
A. get_categories(array(‘parent’ => 0))でparent=0(親なし)の条件を指定します。または get_terms(array(‘taxonomy’ => ‘category’, ‘parent’ => 0))でも同様に取得できます。
Q. カテゴリーの階層構造を再帰的に全て取得するには?
A. get_categories()で全カテゴリーを取得した後、親子関係を元に再帰関数でツリー構造を構築します。またはwp_list_categories()で自動的に階層構造のリストを表示することもできます。
Q. カテゴリーの子カテゴリーだけを取得するには?
A. get_categories(array(‘parent’ => $parent_id))で特定の親IDを指定します。get_term_children($parent_id, ‘category’)で子・孫全ての子孫カテゴリーIDを取得することもできます。

まとめ

WordPressで最上位のカテゴリーを取得する方法は非常にシンプルであり、get_categories関数を使用するだけで簡単に実現できます。