何时使用ADD_SETTINGS_SECTION与仅使用REGISTER_SETTING?

时间:2017-11-03 作者:Runnick

我正在尝试为我的插件添加一些选项,但不明白为什么要使用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 与这种方法相比?

1 个回复
最合适的回答,由SO网友:Mark Kaplun 整理而成

可能不太重要的一点是,您不需要担心标题和标签的样式,因为设置API会处理它。

更重要的方面是软件设计。如果只在一个函数中编写代码,那么选项越多,代码的可维护性就越差,实际上,您希望将其拆分为更小的函数,以使其更具可读性,并能够进行单元测试。既然您在使用设置API时“免费”获得了所有这些内容,那么您应该有充分的理由不使用它(也许您想要的东西看起来根本不像普通的管理页面)。

结束

相关推荐