概要
get_post_meta
関数は、WordPress の投稿やページに関連付けられたカスタムフィールド情報を取得するために使用されます。カスタムフィールドは、投稿やページに追加の情報を持たせるための便利な方法で、さまざまな用途に利用されます。この関数は、ブログのカスタマイズ、メタデータの取り扱い、ユーザーエクスペリエンスの向上など、以下のような機能を実装する際に特に役立ちます:
- 投稿に関連する追加情報を保存・表示する。
- カスタムエクステンションやプラグインのデータを処理する。
- ポートフォリオや作品のメタデータを管理する。
- ユーザーの評価やコメントデータを格納する。
- ショートコードやウィジェットに特定のデータを提供する。
- SEOメタ情報を保存する。
- カスタム投稿タイプの情報を取得する。
- コンテンツを条件に応じて動的に表示する。
構文
get_post_meta( $post_id, $key, $single );
パラメータ
$post_id
: メタデータを取得したい投稿のID。$key
: 取得するカスタムフィールド名(キー)。$single
: 真偽値で、単一の値を返すかどうかを指定(デフォルトはfalse)。
戻り値
メタデータの値。$single
が true の場合は単一の値、false の場合は配列を返す。
関連する関数
使用可能なバージョン
get_post_meta
関数は、WordPress 1.5 以降で使用可能です。
コアファイルのパス
wp-includes/post.php
この関数のアクションでの使用可能性
アクション | 使用例 |
---|---|
mu_plugin_loaded | |
registered_post_type | 〇 |
plugins_loaded | 〇 |
wp_roles_init | |
setup_theme | |
after_setup_theme | |
set_current_user | |
init | 〇 |
register_sidebar | |
wp_loaded | 〇 |
send_headers | |
parse_query | |
pre_get_posts | 〇 |
wp | 〇 |
template_redirect | |
get_header | |
wp_head |
この関数は非推奨や削除されたバージョンはありません。
サンプルコード
サンプル1: 投稿のカスタムフィールドを取得
$post_id = 42; // 投稿IDを指定
$meta_value = get_post_meta($post_id, 'custom_field_key', true);
echo $meta_value; // カスタムフィールドの値を表示
このコードは、特定の投稿IDに関連付けられたカスタムフィールドの値を取得して表示します。
サンプル2: 複数のメタデータを取得
$post_id = 42;
$meta_values = get_post_meta($post_id, 'custom_field_key');
foreach ($meta_values as $value) {
echo $value . '<br>'; // メタデータの各値を表示
}
このコードは、指定された投稿IDのカスタムフィールドに関連するすべての値を取得し、表示します。
サンプル3: メタデータが存在する場合の処理
$post_id = 42;
$meta_value = get_post_meta($post_id, 'custom_field_key', true);
if ($meta_value) {
echo 'カスタムフィールドが設定されています: ' . $meta_value;
} else {
echo 'カスタムフィールドは設定されていません。';
}
このコードは、指定されたカスタムフィールドが存在するかどうかを確認し、存在する場合はその値を表示します。
サンプル4: 投稿内のメタデータを利用して条件分岐
$post_id = get_the_ID(); // 現在の投稿IDを取得
$meta_value = get_post_meta($post_id, 'featured', true);
if ($meta_value == 'yes') {
echo '<p>この投稿は特集されています。</p>';
}
このコードは、現在の投稿が「特集」かどうかを確認し、特集されている場合はメッセージを表示します。
サンプル5: 投稿のすべてのカスタムメタデータをリスト表示
$post_id = 42;
$all_meta = get_post_custom($post_id);
foreach ($all_meta as $key => $value) {
echo $key . ': ' . implode(', ', $value) . '<br>'; // メタデータのキーと値をリスト表示
}
このコードは、指定した投稿IDに関連する全てのカスタムメタデータをリスト表示します。