ワードプレスのselectedフィルタの使用方法・解説

概要

selectedフィルタは、主にフォーム要素の選択状態を管理するために使用されます。このフィルタを利用することで、特定のオプションが選択されているかどうかを動的に制御することができ、ユーザーが選択肢を指定した際のデフォルト値を設定することが容易になります。以下のような5つの使用例があります。

  1. ドロップダウンリストの選択状況を設定する
  2. ラジオボタンのデフォルト値を設定する
  3. チェックボックスに初期値を付与する
  4. 設定ページにおけるセクション表示のための選択状態管理
  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');

このサンプルコードは、ショートコードを使用して選択されたオプションを表示するドロップダウンリストを生成します。

この関数について質問する


上の計算式の答えを入力してください