質問: get_option( 'my_second_field', '' ); echo '<input type="text" id="my_second_field" name="my_second_field" value="' . $value . '" />'; } add_filter('admin_init', 'register_fields'); しかし、これはおそらく最善の方法ではありません。私はsettings_sectionを作成しようとしましたが、うまくいかなかったり、保存されなかったりしました。
回答: コードの2番目のビットは、技術的には正しい方法です。ただし、add_settings_field()の最後に引数を渡すことができます。 wordpress add_settings_field 関数リファレンスをご覧ください。これは、add_settings_field()関数が実際にどのように機能するかを最もよく理解するのに役立ちます。さて、それで、コールバックに 'shared'関数を使用できます。テーマを開発するときにオプションページで行うように。ここに私がそれを行う方法の例を示します。// my example fields add_settings_field( 'tutorial_display_count', 'tutorial display count', 'ch_essentials_textbox_callback', 'ch_essentials_front_page_option', 'ch_essentials_front_page', array( 'tutorial_display_count' // $args for callback ) ); add_settings_field( 'blog_display_count', 'blog display count', 'ch_essentials_textbox_callback', 'ch_essentials_front_page_option', 'ch_essentials_front_page', array( 'blog_display_count' // $args for callback ) ); // my shared callback function ch_essentials_textbox_callback($args) { $options = get_option('ch_essentials_front_page_option'); echo '<input type="text" id="' . $args[0] . '" name="ch_essentials_front_page_option[' . $args[0] . ']" value="' . $options['' . $args[0] . ''] . '"></input>'; } ニーズに合わせて少しカスタマイズする必要がありますが、コールバックの共有関数を使用すると、コードの面で多くのスペースを節約できます。 それ以外は、あなたはそれをそのまま正しくやっています。-編集-わかりました、これはあなたにとってどのようなものでしょう。必要に応じてコードを修正するだけです。私はその場でこれを書きました。必要に応じてadd_settings_field(s)を変更するだけです。さらに追加する必要がある場合は、コピーして貼り付けて編集します。 register_settingを確認してください。そうしないと機能しません。add_action('admin_init', 'my_general_section'); function my_general_section() { add_settings_section( 'my_settings_section', // section id 'my options title', // section title 'my_section_options_callback', // callback 'general' // what page? this makes the section show up on the general settings page ); add_settings_field( // option 1 'option_1', // option id 'option 1', // label 'my_textbox_callback', // !important - this is where the args go! 'general', // page it will be displayed (general settings) 'my_settings_section', // name of our section array( // the $args 'option_1' // should match option id ) ); add_settings_field( // option 2 'option_2', // option id 'option 2', // label 'my_textbox_callback', // !important - this is where the args go! 'general', // page it will be displayed 'my_settings_section', // name of our section (general settings) array( // the $args 'option_2' // should match option id ) ); register_setting('general','option_1', 'esc_attr'); register_setting('general','option_2', 'esc_attr'); } function my_section_options_callback() { // section callback echo '<p>a little message on editing info</p>'; } function my_textbox_callback($args) { // textbox callback $option = get_option($args[0]); echo '<input type="text" id="'. $args[0] .'" name="'. $args[0] .'" value="' . $option . '" />'; }