概要
selected
フィルタは、主にフォーム要素の選択状態を管理するために使用されます。このフィルタを利用することで、特定のオプションが選択されているかどうかを動的に制御することができ、ユーザーが選択肢を指定した際のデフォルト値を設定することが容易になります。以下のような5つの使用例があります。
- ドロップダウンリストの選択状況を設定する
- ラジオボタンのデフォルト値を設定する
- チェックボックスに初期値を付与する
- 設定ページにおけるセクション表示のための選択状態管理
- フィルタやショートコードによって生成されるフォームにおける選択肢の初期設定
構文
add_filter('selected', 'your_custom_function', 10, 3);
パラメータ
$selected
(bool):選択されているかどうかを示す値。$current
(string):現在の値。$default
(string):デフォルトの値。
戻り値
選択されている場合はselected="selected"
という文字列が返されます。そうでない場合は空文字列が返されます。
関連する関数
https://refwp.com/?titleonly=1&s=selected
このフィルタを使用可能なバージョン
- WordPress 2.5 以前から利用可能です。
コアファイルのパス
/wp-includes/general-template.php
この関数のアクションでの使用可能性
アクション | 使用可能性 |
---|---|
mu_plugin_loaded | |
registered_post_type | |
plugins_loaded | |
wp_roles_init | |
setup_theme | |
after_setup_theme | |
set_current_user | |
init | |
register_sidebar | |
wp_loaded | |
send_headers | |
parse_query | |
pre_get_posts | |
wp | |
template_redirect | |
get_header | |
wp_head |
サンプルコード
サンプルコード1: ドロップダウンリストの選択状態を設定
$options = ['option1', 'option2', 'option3'];
$selected_option = 'option2';
echo '<select>';
foreach ($options as $option) {
echo '<option value="' . esc_attr($option) . '" ' . selected($option, $selected_option, false) . '>' . esc_html(ucfirst($option)) . '</option>';
}
echo '</select>';
このサンプルはドロップダウンリストを表示し、’option2’が選択されるように設定しています。
サンプルコード2: ラジオボタンのデフォルト値設定
$selected_radio = 'radio2';
echo '<form>';
echo '<input type="radio" name="my_radio" value="radio1" ' . checked($selected_radio, 'radio1', false) . '> Radio 1<br>';
echo '<input type="radio" name="my_radio" value="radio2" ' . checked($selected_radio, 'radio2', false) . '> Radio 2<br>';
echo '</form>';
ここではラジオボタンの「ラジオ2」をデフォルトで選択状態にしています。
サンプルコード3: チェックボックスの初期値付与
$checkbox_value = true;
echo '<input type="checkbox" name="my_checkbox" value="1" ' . checked($checkbox_value, true, false) . '> Check me<br>';
これはチェックボックスが初期値としてチェックされた状態で表示されます。
サンプルコード4: 設定ページの選択状態管理
$default_value = 'enabled';
$options = ['enabled' => 'Enabled', 'disabled' => 'Disabled'];
foreach ($options as $value => $label) {
echo '<label><input type="radio" name="setting_option" value="' . esc_attr($value) . '" ' . checked($default_value, $value, false) . '> ' . esc_html($label) . '</label><br>';
}
設定ページのラジオボタンにおいて、’enabled’がデフォルトで選択される状態を作っています。
サンプルコード5: ショートコードによる選択肢の初期設定
function my_shortcode($atts) {
$atts = shortcode_atts(['option' => 'option1'], $atts);
$options = ['option1', 'option2', 'option3'];
$output = '<select>';
foreach ($options as $option) {
$output .= '<option value="' . esc_attr($option) . '" ' . selected($option, $atts['option'], false) . '>' . esc_html(ucfirst($option)) . '</option>';
}
$output .= '</select>';
return $output;
}
add_shortcode('my_select', 'my_shortcode');
このサンプルコードは、ショートコードを使用して選択されたオプションを表示するドロップダウンリストを生成します。