【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()で選択された値と選択肢を照合しています。

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

まとめ

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