【WordPress】チェックボックス型カスタムフィールドの選択肢を取得して表示する方法

WordPressのカスタムフィールドでチェックボックスを使用している場合、そのフィールドの選択肢や選択された項目を表示する方法を紹介します。この例では、get_field_object()get_field()を活用して、ACF(Advanced Custom Fields)で作成されたチェックボックスフィールドの値を取得し、選択済みの項目にマークを付けて表示します。

スポンサーリンク

サンプルコード

以下のコードでは、指定されたチェックボックスフィールドの全ての選択肢と選択された値を取得し、それぞれをリスト表示します。

チェックボックスの選択肢と選択済み項目を表示
<?php
// チェックボックスフィールドオブジェクトを取得
$field = get_field_object('チェックボックスフィールド名');

// フィールドが存在するか確認
if( $field ) {
    // 全ての選択肢を取得
    $choices = $field['choices'];

    // 選択された項目を取得
    $selected_values = get_field('チェックボックスフィールド名');

    echo '<ul>';

    // すべての選択肢をループ処理
    foreach( $choices as $value => $label ) {
        // 選択された項目にはマークをつけて表示
        if( is_array( $selected_values ) && in_array( $value, $selected_values ) ) {
            echo '<li>' . esc_html( $label ) . '(選択済み)</li>';
        } else {
            echo '<li>' . esc_html( $label ) . '</li>';
        }
    }

    echo '</ul>';
} else {
    echo 'チェックボックスフィールドが見つかりません。';
}
?>

get_field_object(‘チェックボックスフィールド名’)

チェックボックスフィールドのオブジェクトを取得します。'チェックボックスフィールド名'には、表示したいチェックボックスフィールドの名前を指定します。

選択肢と選択された項目を取得

choicesにはフィールドの全ての選択肢が格納され、get_field('チェックボックスフィールド名')で選択された項目を取得します。

ループ処理で表示

全ての選択肢をループで処理し、選択済みの項目には(選択済み)というマークを付けて表示します。in_array()で選択された値と選択肢を照合しています。

フィールドが存在しない場合の処理

チェックボックスフィールドが存在しない場合には、メッセージを表示します。

関連記事

よくある質問(FAQ)

Qチェックボックス型のカスタムフィールドの値を取得するには?
Aget_post_meta($post_id, 'field_key', true)で保存された値を取得します(カンマ区切り文字列・シリアライズされた配列・複数行の個別メタなど保存方法は実装により異なります)。ACFプラグインを使う場合はget_field()で配列として取得できます。
Q複数選択されたチェックボックスの値をループで表示するには?
Aexplode(',', $value)で区切り文字分割してforeachでループするか、ACFならget_field()が配列を返すためそのままforeachで処理できます。
Qチェックボックスの選択状態に応じてコンテンツを表示・非表示にするには?
Ain_array('selected_value', $values)で特定の値が選択されているか確認し、条件に応じてHTMLを出力します。フォームのname属性をfield_key[]と配列形式にして保存する方法が汎用的です。

まとめ

WordPressのACFプラグインを使ってチェックボックスフィールドを操作し、選択済みの項目をフロントエンドで表示する方法を解説しました。ユーザーが選択した項目を視覚的に分かりやすく表示するための基本的な方法です。