我正在尝试为我的插件添加一些选项,但不明白为什么要使用add_settings_section 当你可以使用register_setting?
我正在通过注册我的设置页面add_menu_page 像这样:
add_menu_page(
__( \'My plugin\' ),
__(\'My plugin\'),
\'manage_options\',
\'my_plugin_page_slug\',
\'render\'
);
//renders the page
function render () { ?>
<div class="wrap">
<form action="options.php" method="post">
<?php
settings_fields( \'my-awesome-plugin-settings\' );
do_settings_sections( \'my-awesome-plugin-settings\' );
?>
//render settings
<h2>Section title</h2>
<div class="form__section">
<input type="checkbox" name="setting_1" value="1" <?php checked(1, get_option(\'setting_1\'), true); ?> />
<label><?php _e(\'Label example\') ?></label>
</div>
<!-- more settings here -->
<?php submit_button(); ?>
</form>
</div>
<?php }
然后我添加如下设置:
function register_my_cool_plugin_settings() {
//register our settings
register_setting( \'my-awesome-plugin-settings\', \'setting_1\' );
....
}
而且似乎效果很好。
使用的好处是什么add_settings_section 与这种方法相比?
最合适的回答,由SO网友:Mark Kaplun 整理而成
可能不太重要的一点是,您不需要担心标题和标签的样式,因为设置API会处理它。
更重要的方面是软件设计。如果只在一个函数中编写代码,那么选项越多,代码的可维护性就越差,实际上,您希望将其拆分为更小的函数,以使其更具可读性,并能够进行单元测试。既然您在使用设置API时“免费”获得了所有这些内容,那么您应该有充分的理由不使用它(也许您想要的东西看起来根本不像普通的管理页面)。