【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()を使用して投稿や固定ページのすべてのメタデータを取得する方法のご紹介でした!