Advanced Custom Fields のキー(フィールド名)を指定して内容を表示するショートコード

固定ページ等で Advanced Custom Fields のフィールド名を指定して内容を表示出来るショートコード。公式でもありそうな気はするけど、すぐ出てこなかったので用意しました。

ACFのキーを指定して内容を表示するショートコード

/**
 * Advanced Custom Fields のキー(フィールド名)を
 * 指定して内容を表示するショートコード
 * [my_acf_the_field key='keyname']
 */
function sc_my_acf_the_field($atts)
{
    global $post;

    // デフォルト値を設定
    $atts = shortcode_atts(
        array(
            "key"     => '',
            "post_id" => $post->ID,
        ),
        $atts
    );

    $html = '';
    ob_start();
    $acf_data = get_field($atts['key'], $atts['post_id']);
    echo $acf_data;
?>
<?php
    $html = ob_get_contents();
    ob_end_clean();

    return $html;
}
add_shortcode('my_acf_the_field', 'sc_my_acf_the_field');

動作環境情報

"エックスサーバー" スタンダード(旧X10)
"PHP" 8.1.24
"MariaDB" 10.5
"WordPress" 6.4.2
"Advanced Custom Fields" 6.2.4

コメント

タイトルとURLをコピーしました