速報

プレステージで最大約550万件の情報持ち出し|ロードサービスは代替運用で継続

CATEGORY

【WordPress】【get_metadata】投稿や固定ページのすべてのメタデータを取得する

※本ページのリンクにはプロモーションが含まれています。

【WordPress】【get_metadata】投稿や固定ページのすべてのメタデータを取得する

目次

本記事では、WordPressのget_metadata関数で投稿や固定ページのすべてのを取得する方法をご紹介しています。

WordPressで指定した投稿や固定ページのすべてのメタデータを取得するにはどうすればいいんだろう?

上記の疑問にお答えします。

では、解説していきます。

スポンサーリンク

WordPressのメタデータとは

WordPressのメタデータは、コンテンツに付随する追加情報を格納するための手段です。具体的には、2つの主要な種類があります。

1. コンテンツメタデータ

投稿メタデータ(Post Metadata)

投稿やページなどのコンテンツには、通常の本文以外にもさまざまな情報が含まれます。これには、特定の記事に関する情報を保存するための「」と呼ばれるものがあります。例えば、記事ごとに異なる特別な属性やデータを保存するのに便利です。カスタムフィールドは、管理画面で記事を編集する際に追加でき、テーマファイルやプラグインからもアクセスできます。これにより、記事ごとに異なる情報を保持できます。

ページメタデータ(Page Metadata)

ページも同様に、特定のページに関する情報を格納するためにカスタムフィールドを使用できます。これにより、ページごとに異なるデータを保存できます。

2. ユーザーメタデータ

ユーザーメタデータ(User Metadata)

WordPressでは、ユーザーに関する情報もメタデータとして保存できます。ユーザーごとに異なる情報(例:プロフィール画像、役職、連絡先情報など)を格納するのに役立ちます。ユーザーメタデータは、ユーザーのプロフィールページで管理できます。テーマやプラグインからもアクセスでき、必要に応じて利用できます。

要するに、WordPressのメタデータは柔軟性があり、様々な種類の情報を管理するのに使える仕組みです。これにより、特定のコンテンツやユーザーに対して独自の情報を付加することが可能になります。

投稿や固定ページのメタデータを取得するには

投稿や固定ページのメタデータを取得する方法にはいくつか方法がありますが、ここではget_metadata()関数を使用したメタデータの取得方法をご紹介します。

get_metadata()関数は、WordPressでオブジェクトのメタデータを取得するための関数です。これを使用することで、投稿、ページ、ユーザーなどのオブジェクトに関連するメタデータを取得できます。以下はget_metadata()関数の基本的な構文と使用例です。

get_metadata()の基本的な構文と使用例

構文

get_metadata( string $meta_type, int $object_id, string $meta_key, bool $single = false );

パラメータ

値型説明
$meta_type[必須] stringpost、comment、term、userなどのオブジェクトタイプを指定します。
$object_id[必須] int$meta_typeで指定したオブジェクトタイプのオブジェクトIDを指定します。postを指定した場合は投稿IDを、pageを指定した場合はページIDを指定します。
$meta_key[任意] stringメタデータのキーを指定します。指定がない場合はオブジェクトのすべてのメタデータを取得します。
$single[任意] boolメタデータのキーを指定した場合に有効なオプションです。指定されたメタデータのキーの値のみを返します。

使用例

// 投稿IDが 1 の投稿の 'custom_field' というカスタムフィールドのメタデータを取得
$meta_value = get_metadata('post', 1, 'custom_field', true);

// ユーザーIDが 5 のユーザーの 'profile_picture' というメタデータを取得
$profile_picture = get_metadata('user', 5, 'profile_picture', true);

上記の使用例では、get_metadata() 関数を使用して指定されたオブジェクトのメタデータを取得しています。$meta_type にはオブジェクトのタイプ(post、userなど)、$object_idには対象となるオブジェクトのID(投稿ID、ユーザーIDなど)、$meta_key には取得したいメタデータのキーを指定します。$single を true に設定すると、単一の値が返されます。

スポンサーリンク

get_metadata()ですべてのメタデータを取得するには

get_metadata()関数を使用して、指定したオブジェクト(post、userなど)に関連するすべてのメタデータを取得するには、$meta_keyパラメータと$singleパラメータを指定せずに関数を呼び出します。以下はそのための基本的な構文です。

構文

get_metadata( string $meta_type, int $object_id );

使用例

// 投稿IDが 1 の投稿のすべてのメタデータを取得
$metadata = get_metadata('post', 1);

// ユーザーIDが 5 のユーザーのすべてのメタデータを取得
$metadata = get_metadata('user', 5);

メインループ内の使用例

メインループ内で get_metadata()関数を使用して、すべてのメタデータを取得する場合の使用例です。以下では指定した投稿IDの投稿が持つすべてのメタデータを取得しています。

<?php

if(have_posts()): while(have_posts()) : the_post();

        // 現在の投稿のIDを取得
        $post_id = get_the_ID();

        // 現在の投稿のすべてのメタデータを取得
        $metadata = get_metadata('post', $post_id);

        // メインループ内で取得したメタデータを使用して表示などの処理を行う
        ?>
        <article>
            <h2><?php the_title(); ?></h2>

            <?php
            // すべてのメタデータを表示
            if($metadata):
                echo '<ul>';
                foreach ($metadata as $key => $value):
                    echo '<li>' . esc_html($key) . ': ' . esc_html(implode(', ', $value)) . '</li>';
                endforeach;

                echo '</ul>';
            endif;
            ?>

            <!-- 他のコンテンツ表示など -->
        </article>
        <?php

    endwhile;
else :
    // 投稿がない場合の処理
endif;

上記例では、get_metadata()関数に$meta_keyを指定せずに呼び出しています。これにより、指定した投稿のすべてのメタデータが配列として取得されます。その後、foreach ループを使用して各メタデータのキーと値を表示しています。

以上で投稿や固定ページのすべてのメタデータを取得して表示することが可能です。

参考:get_metadata() | Function | WordPress Developer Resources

最後に


WordPressのget_metadata()関数は、オブジェクト(post、userなど)に関連するメタデータを取得するための優れた関数です。基本の構文に従ってオブジェクトの種類とIDを指定し、必要なメタデータを取得できます。メインループ内で使用すると、各投稿に関連するメタデータを簡単に取得し、カスタムな表示を実現できます。get_metadata()を利用して、WordPressのサイトをより柔軟かつ効果的に構築してくださいね!

以上、WordPressのget_metadata()を使用して投稿や固定ページのすべてのメタデータを取得する方法のご紹介でした!

この記事を書いた人

Ryohei

Webエンジニア / アプリ開発者 / 技術ブログ運営者

福岡のWeb制作会社に勤務するWebエンジニアです。10年以上にわたりWeb制作・開発に携わり、ヒアリングや進行管理から、コーディング、CMSの構築、システム開発、サーバーの構築・保守・運用まで、Webサイト制作の工程を幅広く担当しています。Webサイトは、これまでに100以上の構築・保守を手がけてきました。

個人でもWebサイトの制作・改修やWebアプリの開発・運用を行い、AIを活用した開発にも取り組んでいます。近年はWebセキュリティにも注力しています。

2015年から技術メディア「Into the Program」を運営し、実務や開発で得た知識をもとに、プログラミングの実装方法やWebサイトの運用・セキュリティ情報を発信しています。

主な分野
Webサイト構築・保守・運用 / HTML/CSS / JavaScript / PHP / WordPress / サーバー構築・保守・運用 / アプリ開発 / セキュリティ対策
資格・試験合格
情報セキュリティマネジメント試験
基本情報技術者試験
AWS認定ソリューションアーキテクト アソシエイト
PHP8技術者認定ウィザード
メディア運営
2015年〜

記事の作成・更新について

セキュリティ記事は、ベンダーの公式アドバイザリやCVE・JVNなどの一次情報を参照し、出典と情報確認日を記載します。実環境での検証を行った場合は、その環境と確認範囲を明示します。重要な追加情報や誤りを把握した場合は、内容を確認して追記・訂正します。

関連する記事

おすすめの書籍

キーワードから探す

スポンサーリンク

カスタムフィールド

WordPressで、記事やページに本文とは別の独自の項目(価格、日付、URLなど)を追加して保存する機能。

詳しく見る

メタデータ

データそのものではなく、そのデータについての情報。作成日時・作成者・形式・サイズなど。

詳しく見る