MENU

タームのメタデータを取得する

WordPressのカスタムタクソノミーやカテゴリーに登録されたタームには、メタデータを追加することが可能です。本記事では、タームのメタデータを取得し、簡単に表示するためのカスタマイズ方法を紹介します。

目次

タームのメタデータを取得する

WordPressでは、タームにメタデータを追加し、特定のカスタム情報を付与することができます。このカスタマイズでは、タクソノミー内のターム一覧を取得し、各タームのメタデータも併せて取得・表示します。これはSEOデータや追加情報を表示したいときに便利です。

ソース例

<?php
// 指定したタクソノミーのすべてのタームとそのメタデータを取得する関数
function get_all_terms_with_meta($taxonomy) {
    // タクソノミーからすべてのタームを取得
    $terms = get_terms([
        'taxonomy'   => $taxonomy,
        'hide_empty' => false, // 空のタームも含める
    ]);

    if (is_wp_error($terms)) {
        echo 'タームの取得に失敗しました。';
        return;
    }

    // タームごとの情報を取得して表示
    foreach ($terms as $term) {
        echo '<h3>ターム名: ' . esc_html($term->name) . '</h3>';
        echo '<p>スラッグ: ' . esc_html($term->slug) . '</p>';
        echo '<p>ID: ' . esc_html($term->term_id) . '</p>';

        // タームのメタデータをすべて取得
        $meta_data = get_term_meta($term->term_id);

        // メタデータがある場合、すべて表示
        if (!empty($meta_data)) {
            echo '<ul>';
            foreach ($meta_data as $key => $value) {
                echo '<li>' . esc_html($key) . ': ' . esc_html(implode(', ', $value)) . '</li>';
            }
            echo '</ul>';
        } else {
            echo '<p>メタデータはありません。</p>';
        }
    }
}

// 例: カスタムタクソノミー「customtaxonomy-name」(カスタムタクソノミー名)からターム情報を取得して表示
get_all_terms_with_meta('customtaxonomy-name');
?>
  • get_terms(): 特定のタクソノミー内のすべてのタームを取得します。hide_empty => falseに設定すると、空のタームも含めて取得します。
  • foreach ループ: 各タームごとにターム名やスラッグ、IDを出力します。
  • get_term_meta(): タームのIDを指定してメタデータを取得します。foreach ループで各メタキーを表示しています。
  • esc_html(): HTMLエスケープを行い、XSS攻撃を防ぎます。

難易度 

タームやメタデータ取得には、タクソノミーやメタ関数の基本知識が必要です。メタデータを取得して表示するための構文理解が求められるため、初学者にはやや難しく感じるかもしれません。

使用しているタグ

  • get_terms()
  • get_term_meta()
  • esc_html()

Q&A

タームにメタデータが設定されていない場合はどうなりますか?

タームにメタデータがない場合は、メタデータが表示されないように制御しているため、「メタデータはありません」と表示されます。

タームを指定して表示することはできますか?

はい、タームIDやスラッグを指定すれば特定のタームのメタデータのみを表示することも可能です。

まとめ

本記事で紹介したコードを活用することで、WordPressのカスタムタクソノミーに登録されたタームのメタデータを取得し、表示することができます。これにより、SEO設定や追加情報の出力が容易になります。

よかったらシェアしてね!
  • URLをコピーしました!

この記事を書いた人

WordPress Love! 休日はほぼWordPress仲間と一緒に勉強会や写真を撮りに行っています。現在育児中のため、オフが多いです(>△<<<)

コメント

コメントする

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください

目次