从技术上讲,第二位代码是正确的方法。然而,在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] . \'\'] . \'">\';
}
这将需要一些定制来满足您的需要,但为回调执行共享函数将在代码方面节省大量空间。
Other than that, you are doing it correctly as is.--编辑--
好吧,这就是你应该的样子。。只要根据需要修改代码,我就可以动态编写这篇文章。。我做了测试来检查,结果成功了。您只需修改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 . \'" />\';
}