checked() は、フォームの <input type="checkbox"> や <input type="radio"> などの要素において、ある値が一致するかを判定し、自動的に checked="checked" を出力する便利なヘルパータグです。
条件分岐と HTML 出力を一行で済ませられるため、管理画面やカスタムフォームの実装で頻繁に使用されます。
目次
機能の説明
checked() は、比較対象の2つの値が一致している場合に checked="checked" を出力する関数です。echo を false にすると戻り値として扱うこともできます。
どういうときに使う?
- チェックボックスやラジオボタンの選択状態を維持したいとき
- 管理画面やオプション設定ページで選択状態を制御したいとき
- カスタム投稿タイプやメタボックスの選択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 | 比較対象の値(チェック状態にしたい基準値) |
$echo | true の場合は直接出力、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の型が異なる(例:intとstring)echoをfalseにして出力していない
解決方法
- 厳密な型一致で比較されるため、明示的にキャストするか、型を揃える
echoをtrue(デフォルト)にするか、出力を明示的に行う
checked( (string) $value, '1' );Q&A
まとめ
checked()は、HTML フォームの<input type="checkbox">や<input type="radio">に対してchecked="checked"を出力する WordPress の便利関数。- 条件が一致すると
checked="checked"を出力、echo falseで戻り値として取得可能。 selected()、disabled()、readonly()もセットで活用することが多い。
コメント