web-dev-qa-db-ja.com

設定APIを使用してカスタムオプションページでチェックボックスを使用する方法

カスタムオプションページを作成する際にSetting APIにチェックボックスを追加する方法を教えてください。私は次のコードを使用して、完璧に機能しているテキストボックスを追加していますが、設定APIとオプションにchechboxを追加する方法を完全に混同しています。入力タイプをチェックボックスに更新しようとしましたが、フォームを保存するときにチェックボックスがまだチェックされていないように表示されます。

 add_settings_field('the_option_label',
                    'Display Paragraph:',
                     array($this,'the_option_label_setting'),
                     __FILE__,
                     'hte_main_section');

 public function the_option_label_setting()
    {
       echo "<input name='My_Theme_Options[the_option_label]' type='text' value='{$this->options['the_option_label']}'/>";
    }

ありがとう

5
Mona Coder

見てください: WordPress設定APIの完全ガイド(パート8:検証、サニタイズ、および入力II)

add_settings_field(  
    'Checkbox Element',  
    'Checkbox Element',  
    'sandbox_checkbox_element_callback',  
    'sandbox_theme_input_examples',  
    'input_examples_section'  
);

function sandbox_checkbox_element_callback() {

    $options = get_option( 'sandbox_theme_input_examples' );

    $html = '<input type="checkbox" id="checkbox_example" name="sandbox_theme_input_examples[checkbox_example]" value="1"' . checked( 1, $options['checkbox_example'], false ) . '/>';
    $html .= '<label for="checkbox_example">This is an example of a checkbox</label>';

    echo $html;

}

編集:チェックボックスフィールドは、ボックスがチェックされているかどうかを判断するためにvalue属性を使用しません。それらはchecked属性を使います。上記の$html行は、上記の記事の後半のコードを使用して編集されています。詳細については記事を読んでください。

7
Till