ワードプレスのget_post_custom_values関数の使用方法・解説

概要

get_post_custom_values関数は、WordPressのカスタムフィールドの値を取得するために使用されます。この関数は主に以下のような機能を実装する際に利用されます:

  1. 特定の投稿に関連付けられたカスタムフィールドの値を取得する。
  2. カスタムメタデータを表示するためのテーマやプラグインを開発する。
  3. 投稿の詳細情報を拡張するためにカスタムフィールドを使用する。
  4. 投稿タイプごとに異なるカスタムデータを管理する。
  5. フロントエンドにおけるデータの動的表示を実現する。
  6. 投稿のレイアウトやデザインに応じた情報をカスタマイズする。
  7. アドバンスドカスタムフィールド(ACF)との連携に使用する。
  8. 投稿内容に基づいたフィルタリング機能を実装する。

構文

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)

この関数について質問する


上の計算式の答えを入力してください