【WordPress】【get_metadata】投稿や固定ページのすべてのメタデータを取得する
※本ページのリンクにはプロモーションが含まれています。
こんにちは、Ryohei(@ityryohei)です!
本記事では、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 | [必須] string | post 、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
ループを使用して各メタデータのキーと値を表示しています。
以上で投稿や固定ページのすべてのメタデータを取得して表示することが可能です。
最後に
WordPressのget_metadata()
関数は、オブジェクト(post
、user
など)に関連するメタデータを取得するための優れた関数です。基本の構文に従ってオブジェクトの種類とIDを指定し、必要なメタデータを取得できます。メインループ内で使用すると、各投稿に関連するメタデータを簡単に取得し、カスタムな表示を実現できます。get_metadata()
を利用して、WordPressのサイトをより柔軟かつ効果的に構築してくださいね!
以上、WordPressのget_metadata()を使用して投稿や固定ページのすべてのメタデータを取得する方法のご紹介でした!