MENU

checked()

checked() は、フォームの <input type="checkbox"><input type="radio"> などの要素において、ある値が一致するかを判定し、自動的に checked="checked" を出力する便利なヘルパータグです。

条件分岐と HTML 出力を一行で済ませられるため、管理画面やカスタムフォームの実装で頻繁に使用されます。

目次

機能の説明

checked() は、比較対象の2つの値が一致している場合に checked="checked" を出力する関数です。echofalse にすると戻り値として扱うこともできます。

どういうときに使う?

  • チェックボックスやラジオボタンの選択状態を維持したいとき
  • 管理画面やオプション設定ページで選択状態を制御したいとき
  • カスタム投稿タイプやメタボックスの選択UI

シンプルなコード例

<input type="checkbox" name="subscribe" value="yes" <?php checked( $value, 'yes' ); ?> />

$value'yes' の場合 → checked="checked" が出力されます。

使い方の説明

構文

checked( mixed $checked, mixed $current = true, bool $echo = true ): string|void
パラメータ説明
$checked実際の値(入力データやDBから取得した値など)
$current比較対象の値(チェック状態にしたい基準値)
$echotrue の場合は直接出力、false の場合は戻り値として返す

フォーム実装例(複数選択)

<?php $colors = ['red', 'green', 'blue']; ?>
<?php foreach ( $colors as $color ): ?>
  <label>
    <input type="checkbox" name="fav_colors[]" value="<?php echo esc_attr( $color ); ?>" <?php checked( in_array( $color, $selected_colors ), true ); ?> />
    <?php echo esc_html( ucfirst( $color ) ); ?>
  </label>
<?php endforeach; ?>

一緒に使うことが多い関連タグ

selected()

<select><option> 要素で使います。

<option value="large" <?php selected( $size, 'large' ); ?>>Large</option>

disabled()

入力を無効化する属性を出力。

<input type="text" name="title" <?php disabled( $has_permission, false ); ?> />

readonly()

読み取り専用属性。

<input type="text" name="example" <?php readonly( $is_locked ); ?> />

追加情報で取得したい場合

checked() を直接出力せず、変数として扱いたい場合

$checked_attr = checked( $value, 'yes', false );
echo '<input type="checkbox" ' . $checked_attr . ' />';

このテンプレートタグを利用してのカスタマイズ

カスタム投稿のメタボックスでチェックボックス状態を出力

<input type="checkbox" name="show_sidebar" value="1" <?php checked( get_post_meta( $post->ID, 'show_sidebar', true ), '1' ); ?> />

オプション設定画面で使用

<input type="radio" name="theme_layout" value="grid" <?php checked( get_option( 'theme_layout' ), 'grid' ); ?> />

想定されるトラブル

チェックが付かない

  • $checked$current の型が異なる(例: intstring
  • echofalse にして出力していない

解決方法

  • 厳密な型一致で比較されるため、明示的にキャストするか、型を揃える
  • echotrue(デフォルト)にするか、出力を明示的に行う
checked( (string) $value, '1' );

Q&A

checked()selected() の違いは?

checked() はチェックボックスやラジオ用、selected() はセレクトボックス用です。

true/false で比較してもいい?

はい。例えば checked( true, $value ); のように書けます。

出力ではなく変数で使いたいときは?

第3引数に false を指定します。

まとめ

  • checked() は、HTML フォームの <input type="checkbox"><input type="radio"> に対して checked="checked" を出力する WordPress の便利関数。
  • 条件が一致すると checked="checked" を出力、echo false で戻り値として取得可能。
  • selected()disabled()readonly() もセットで活用することが多い。
よかったらシェアしてね!
  • URLをコピーしました!

コメント

コメントする

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください

目次