PR

WordPressでデータベースからカテゴリ名とカテゴリIDを取得する方法

スポンサーリンク

WordPressでデータベースからカテゴリ名とカテゴリIDを取得する方法

WordPressのカテゴリ情報(カテゴリ名とカテゴリID)をデータベースから取得する方法を、初心者にもわかりやすく解説します。


スポンサーリンク

1. WordPressのデータベース構造を理解する

WordPressのカテゴリ情報は、データベースの wp_terms および wp_term_taxonomy テーブルに保存されています。

テーブル名役割
wp_termsカテゴリ名やスラッグなどの基本情報を管理
wp_term_taxonomy各タクソノミー(カテゴリ、タグなど)の情報を管理

カテゴリ情報を取得する際には、これらのテーブルを組み合わせてクエリを実行します。


2. WordPressの関数を使用してカテゴリ情報を取得する

2.1 get_categories() を使用する方法

get_categories() は、カテゴリ情報を簡単に取得できる関数です。

使用例:カテゴリIDと名前を取得

$categories = get_categories();
foreach ($categories as $category) {
    echo 'ID: ' . $category->term_id . ' - Name: ' . $category->name . "<br>";
}

結果

ID: 1 - Name: 未分類
ID: 2 - Name: ニュース
ID: 3 - Name: ブログ

2.2 get_terms() を使用する方法

get_terms() を使うと、カテゴリ以外のタクソノミー(タグなど)も取得できます。

使用例:カテゴリ情報を取得

$categories = get_terms(
    array(
        'taxonomy'   => 'category',
        'hide_empty' => false,
    )
);
foreach ($categories as $category) {
    echo 'ID: ' . $category->term_id . ' - Name: ' . $category->name . "<br>";
}

3. SQLクエリを使用してデータベースから取得する

WordPressの関数を使わず、SQLを直接実行してカテゴリ情報を取得する方法です。

使用例:SQLでカテゴリIDと名前を取得

global $wpdb;
$results = $wpdb->get_results(
    "SELECT t.term_id, t.name 
     FROM {$wpdb->prefix}terms AS t 
     INNER JOIN {$wpdb->prefix}term_taxonomy AS tt 
     ON t.term_id = tt.term_id 
     WHERE tt.taxonomy = 'category'"
);

foreach ($results as $row) {
    echo 'ID: ' . $row->term_id . ' - Name: ' . $row->name . "<br>";
}

ポイント

  • $wpdb->prefix を使用してテーブルプレフィックスを考慮
  • wp_termswp_term_taxonomy を結合してカテゴリ情報を取得

4. JSON形式で取得する

APIや外部システムで利用しやすいよう、カテゴリ情報をJSON形式で取得する方法です。

使用例:JSON形式でカテゴリを取得

header('Content-Type: application/json');
global $wpdb;
$results = $wpdb->get_results(
    "SELECT t.term_id, t.name 
     FROM {$wpdb->prefix}terms AS t 
     INNER JOIN {$wpdb->prefix}term_taxonomy AS tt 
     ON t.term_id = tt.term_id 
     WHERE tt.taxonomy = 'category'",
    ARRAY_A
);
echo json_encode($results);

結果(例)

[
    {"term_id":1, "name":"未分類"},
    {"term_id":2, "name":"ニュース"},
    {"term_id":3, "name":"ブログ"}
]

5. カスタムウィジェットでカテゴリ一覧を表示する

取得したカテゴリ情報をウィジェットで表示する方法を紹介します。

手順:カスタムウィジェットを作成

  1. functions.php に以下のコードを追加
  2. 管理画面の「ウィジェット」から追加
class Custom_Category_Widget extends WP_Widget {
    function __construct() {
        parent::__construct('custom_category_widget', 'カスタムカテゴリウィジェット');
    }

    function widget($args, $instance) {
        echo $args['before_widget'];
        echo $args['before_title'] . 'カテゴリ一覧' . $args['after_title'];
        $categories = get_categories();
        echo '<ul>';
        foreach ($categories as $category) {
            echo '<li>' . $category->name . '</li>';
        }
        echo '</ul>';
        echo $args['after_widget'];
    }
}
function register_custom_category_widget() {
    register_widget('Custom_Category_Widget');
}
add_action('widgets_init', 'register_custom_category_widget');

6. まとめ

方法説明
get_categories()WordPress標準関数でカテゴリ一覧を取得
get_terms()より柔軟なカテゴリ取得方法
SQLクエリ直接データベースから取得する方法
JSON形式API用にデータをフォーマット
ウィジェットカテゴリ一覧を表示するカスタムウィジェット

目的に応じて適切な方法を選択し、効率的にカテゴリ情報を取得しましょう!

記事が参考になった方、サイト運営を応援してくれる方へ

下のリンクから楽天トラベルでホテル予約か、楽天市場で商品購入を願いします。応援よろしくお願いします。
リンクを表示すれば楽天トラベルで予約の検索ができます。

リンクを表示すれば、お好きな商品が検索できます。

スポンサーリンク
haruki

ITエンジニア × 副業 × 投資家
副業と投資で年間100万円以上の収益を達成
ブログ・YouTube・投資で複数の収益源を確立

私は、IT業界でクラウドエンジニアとして10年以上の経験を積みながら、副業と投資を実践し、資産を増やしてきました。
このブログでは、 「最短で副業、本業の収益を上げ、資産を最大化する方法」 をリアルな成功事例と失敗談を交えて解説します。

Youneedjp.com の目的

「個人が副業と投資で安定収益を得るための実践ガイド」 を提供

副業・投資・お得なライフハックを 「すぐに実践できるノウハウ」 に特化し、
読者が 「月5万円の副収入」 を最短で得られるようにサポートします。

harukiをフォローする

クラウドファンディングで資金を集めています。運営を応援してくださる方は下のリンクの欲しいものリストからプレゼントお願いします。もちろん、住所、氏名などは匿名で発送できます。

参考になたっらSNSシェア&フォローもよろしくお願いします!質問、お仕事相談など、「X」のDMで気軽にご相談ください。

スポンサーリンク
スポンサーリンク
スポンサーリンク
ブログ・YouTubeプログラミング
スポンサーリンク
参考になった情報は、ぜひシェアお願いします
harukiをフォローする

コメント

タイトルとURLをコピーしました