0

次のコードを使用して、いくつかのラジオ ボタンを追加します。

add_settings_field(
    'video_embed', 
    'Embed YouTube/Videmo Video', 
    array( $this, 'video_embed_callback' ),
    'setting-admin',
    'field_settings'
);

次のようなコールバック関数を記述しました。

public function video_embed_callback()
{
    $value = isset( $this->options['is_video_embed'] ) ? esc_attr( $this->options['is_video_embed']) : '';
    printf('<label><input type="radio" id="is_video_embed_y" name="option_name[is_video_embed]" value="enable" '.checked( $value, 'enable', false ).' /> Enable</lable>');
    echo "<br>";
    printf('<label><input type="radio" id="is_video_embed_n" name="option_name[is_video_embed]" value="disable" '.checked( $value, 'disable', false ).' /> Disable</lable>');
}

すべてが機能していますが、問題はレベルが機能していないことです。ページを調べると、次の構造が得られました。

<tr valign="top">
    <th scope="row">Embed YouTube/Videmo Video</th>
    <td>
        <label>
            <input type="radio" id="is_video_embed_y" name="nl_option_name[is_video_embed]" value="enable">
            Enable<br>
            <label>
                <input type="radio" id="is_video_embed_n" name="nl_option_name[is_video_embed]" value="disable">
            Disable
            </label>
        </label>
    </td>
</tr>

ただし、次のようにする必要があります。

<label>
    <input type="radio" id="is_video_embed_y" name="nl_option_name[is_video_embed]" value="enable">
    Enable<br>
</label>
<label>
    <input type="radio" id="is_video_embed_n" name="nl_option_name[is_video_embed]" value="disable">
Disable
</label>

助けてください、何が起こっているのかわかりません:(

4

1 に答える 1