【WordPress】投稿のカスタムフィールドを取得する方法

WordPressの柔軟性を最大限に引き出すためには、カスタムフィールドの活用が重要です。カスタムフィールドを使用すると、各投稿に独自のデータを追加できます。しかし、これらのデータを取得して表示する方法は、初めてのユーザーにとってはややこしいことがあります。

ここでは、WordPressで投稿のカスタムフィールドを取得するための基本的な方法を紹介します。以下の手順に従って、カスタムフィールドの値を取得して、それを使って動的で個別のコンテンツを表示することができます。

スポンサーリンク

投稿IDの取得

まず、現在の投稿のIDを取得します。これにはget_the_ID() 関数を使用します。

<?php
// 投稿IDを取得
$post_id = get_the_ID();
?>

カスタムフィールドの値を取得

次に、get_post_meta() 関数を使用して、投稿IDとカスタムフィールドの名前に対応する値を取得します。以下の例では、カスタムフィールドの名前が ‘custom_field_name’ としています。

<?php
// カスタムフィールドの値を取得
$custom_field_value = get_post_meta($post_id, 'custom_field_name', true);
?>

値の表示

最後に、取得した値がある場合に表示するコードを追加します。

<?php
// 値がある場合に表示
if ($custom_field_value) {
    echo 'カスタムフィールドの値: ' . $custom_field_value;
}
?>

これで、各投稿に設定したカスタムフィールドの値を取得して、ウェブサイト上で利用できるようになりました。この手法を活かして、個々の投稿に合わせたカスタマイズを行いましょう。

サンプルコード

<?php
// 現在の投稿のIDを取得
$post_id = get_the_ID();

// カスタムフィールドの値を取得
$custom_field_value = get_post_meta($post_id, 'custom_field_name', true);

// 値がある場合に表示
if ($custom_field_value) {
    echo '<p>現在の投稿のカスタムフィールドの値: ' . $custom_field_value . '</p>';
}
?>

よくある質問(FAQ)

Q. WordPressでカスタムフィールドの値を取得する方法を複数教えてください。
A. ①get_post_meta($post_id, $key, true):シンプルな取得②ACFのget_field($key):ACFプラグイン利用時③$post->meta:利用不可。WP_Queryのmeta_queryで条件絞り込みも可能。IDを指定しない場合はget_the_ID()を使います。
Q. 同名のカスタムフィールドが複数値ある場合(配列として保存)はどうやって取得しますか?
A. get_post_meta($id, $key, false)(第3引数false)で全ての値を配列として返します。add_post_meta()のunique=falseで同名キーに複数値を追加できます。ACFのリピーターフィールドの場合はget_field()が配列を返します。
Q. カスタムフィールドの値でWP_Queryをソートするにはどうすればよいですか?
A. new WP_Query(["meta_key"=>"price", "orderby"=>"meta_value_num", "order"=>"ASC"])で数値カスタムフィールドの昇順ソートができます。文字列は”meta_value”を使います。

まとめ

WordPressのカスタムフィールドをうまく活用することで、コンテンツの多様性と柔軟性を向上させることができます。ぜひ、これらの手法を活かして、ユーザーエクスペリエンスを向上させてください。