概要
get_post_custom_values
関数は、WordPressのカスタムフィールドの値を取得するために使用されます。この関数は主に以下のような機能を実装する際に利用されます:
- 特定の投稿に関連付けられたカスタムフィールドの値を取得する。
- カスタムメタデータを表示するためのテーマやプラグインを開発する。
- 投稿の詳細情報を拡張するためにカスタムフィールドを使用する。
- 投稿タイプごとに異なるカスタムデータを管理する。
- フロントエンドにおけるデータの動的表示を実現する。
- 投稿のレイアウトやデザインに応じた情報をカスタマイズする。
- アドバンスドカスタムフィールド(ACF)との連携に使用する。
- 投稿内容に基づいたフィルタリング機能を実装する。
構文
get_post_custom_values( $key, $post_id );
パラメータ
$key
(string) — 取得したいカスタムフィールドのキー名。$post_id
(int) — 投稿のID。省略した場合は現在の投稿が利用されます。
戻り値
- (array) — 指定したキーに対するカスタムフィールドの値の配列。値が存在しない場合は空の配列が返されます。
関連する関数
使用可能なバージョン
- すべてのWordPressバージョンで使用可能。
コアファイルのパス
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
このサンプルコードは、特定の投稿IDに基づいてカスタムフィールドの値を取得し、表示します。
$post_id = 1; // 取得したい投稿のID
$custom_values = get_post_custom_values( 'custom_field_key', $post_id );
if ( !empty( $custom_values ) ) {
echo implode( ', ', $custom_values );
}
(出典: WordPress Codex)
サンプルコード 2
このサンプルは、現在の投稿から「price」カスタムフィールドの値を取得し、それを表示します。
$custom_values = get_post_custom_values( 'price' );
if ( !empty( $custom_values ) ) {
echo 'Price: ' . esc_html( implode( ', ', $custom_values ) );
}
(出典: WordPress Theme Development)
サンプルコード 3
ここでは、あるカスタムフィールドが設定されているかどうかをチェックし、条件に応じて処理を行います。
$post_id = get_the_ID();
$custom_values = get_post_custom_values( 'event_date', $post_id );
if ( !empty( $custom_values ) ) {
// カスタムフィールドの値が存在する場合の処理
echo 'Event Date: ' . esc_html( $custom_values[0] );
}
(出典: Advanced WordPress)
サンプルコード 4
以下のコードは、特定の投稿からカスタムフィールドの値のリストを取得し、HTMLのリストとして表示します。
$post_id = 2; // 別の投稿IDを指定
$custom_values = get_post_custom_values( 'tags', $post_id );
if ( !empty( $custom_values ) ) {
echo '<ul>';
foreach ( $custom_values as $value ) {
echo '<li>' . esc_html( $value ) . '</li>';
}
echo '</ul>';
}
(出典: WPBeginner)
サンプルコード 5
このサンプルでは、投稿のループ内でカスタムフィールドの値を利用してカスタムメッセージを表示します。
while ( have_posts() ) : the_post();
$custom_values = get_post_custom_values( 'author_bio' );
if ( !empty( $custom_values ) ) {
echo '<div class="bio">' . esc_html( $custom_values[0] ) . '</div>';
}
endwhile;
(出典: WPMU DEV)