selected()


WordPressの関数selected()は、フォームフィールド内の値が選択されている場合にselected属性を出力します。この関数は主に、HTMLフォームのセレクトボックスやラジオボタンで使用されます。

構文

selected( mixed $selected, mixed $current, bool $echo = true );

引数の説明

  • $selected (mixed) — 確認したい値。
  • $current (mixed) — 比較対象の現在の値。
  • $echo (bool) — 結果を直接出力するかどうか。デフォルトはtrue

例1: セレクトボックス内で値を選択

以下のコードは、セレクトボックス内で現在選択されている値にselected属性を追加します。

<?php
$options = [ 'red', 'blue', 'green' ];
$current = 'blue';
?>
<select>
    <?php foreach ( $options as $option ) : ?>
        <option value="<?php echo $option; ?>" <?php selected( $option, $current ); ?>><?php echo ucfirst( $option ); ?></option>
    <?php endforeach; ?>
</select>

例2: ラジオボタンで選択された値を表示

ラジオボタンで現在選択されている値にselected属性を設定します。

<?php
$options = [ 'yes', 'no' ];
$current = 'yes';
?>
<?php foreach ( $options as $option ) : ?>
    <label>
        <input type="radio" name="choice" value="<?php echo $option; ?>" <?php selected( $option, $current ); ?> />
        <?php echo ucfirst( $option ); ?>
    </label>
<?php endforeach; ?>

例3: カスタム投稿タイプの選択

特定のカスタム投稿タイプをセレクトボックスで選択します。

<?php
$post_types = get_post_types( [ 'public' => true ], 'names' );
$current = 'page';
?>
<select name="post_type">
    <?php foreach ( $post_types as $post_type ) : ?>
        <option value="<?php echo $post_type; ?>" <?php selected( $post_type, $current ); ?>><?php echo ucfirst( $post_type ); ?></option>
    <?php endforeach; ?>
</select>

例4: ウィジェットエリアの条件付き表示

現在のウィジェットエリアを選択して表示します。

<?php
$widget_areas = [ 'header', 'sidebar', 'footer' ];
$current = 'sidebar';
?>
<select>
    <?php foreach ( $widget_areas as $area ) : ?>
        <option value="<?php echo $area; ?>" <?php selected( $area, $current ); ?>><?php echo ucfirst( $area ); ?></option>
    <?php endforeach; ?>
</select>

例5: カスタムメタデータの比較

投稿のカスタムフィールド値を選択状態にします。

<?php
$meta_key = 'color';
$selected_color = get_post_meta( get_the_ID(), $meta_key, true );
$options = [ 'red', 'blue', 'green' ];
?>
<select>
    <?php foreach ( $options as $color ) : ?>
        <option value="<?php echo $color; ?>" <?php selected( $color, $selected_color ); ?>><?php echo ucfirst( $color ); ?></option>
    <?php endforeach; ?>
</select>

注意事項

この関数はHTML出力に依存しているため、XSS攻撃を防ぐために入力値をエスケープすることを検討してください。


関連機能: