使用设置API将设置列入白名单,但不输出

时间:2014-04-25 作者:David Gard

我有一个带有多个设置的插件页面。其中四个设置都在同一部分中,需要内联显示,而不是一个在另一个之上。但是,为了确保设置被列入白名单,我必须使用add_settings_field() 作用

我可以通过向一个函数传递一个空白标签和一个回调来实现我的大部分目标,该函数对其中三个选项不输出任何内容,然后将所有四个设置添加到另一个选项的回调中。但是,这样做仍然会添加一个表行,从而为其中3个选项留下不必要的空白。

我已经查看了add_settings_field() 函数,只需将设置添加到$wp_settings_fields 全球的然后,这些设置由do_settings_fields() 函数,它没有明显的不输出表行的方法。

有人知道我可以通过什么方式实现我的所有目标吗?

Here is how I am registering the settings -

/**
 * Register the settings that can be saved by this plugin
 */
public function register_plugin_settings(){

    add_settings_section(
        \'aab_header_logo_section\',                                      // ID
        __(\'What logo do you want to use?\', \'djg-admin-area-branding\'), // Title
        false,                                                          // Callback
        \'djg_admin_area_branding_header\'                                // Page
    );

    add_settings_field(\'header_logo_margin_top\',//ID
        __(\'Header logo margin (px)\', \'djg-admin-area-branding\'), // Title
        array($this, \'_option_header_logo_margin\'),               // Callback
        \'djg_admin_area_branding_header\',                         // Page
        \'aab_header_logo_section\',                                // Section
        array(                                                    // Args
            \'label_for\' => \'header_logo_margin_top\'
        ) 
    );

    add_settings_field(
        \'header_logo_margin_right\',
        false,
        array($this, \'_null\'),
        \'djg_admin_area_branding_header\',
        \'aab_header_logo_section\' 
    );

    add_settings_field(
        \'header_logo_margin_bottom\',
        false,
        array($this, \'_null\'),
        \'djg_admin_area_branding_header\',
        \'aab_header_logo_section\'
    );

    add_settings_field(
        \'header_logo_margin_left\',
        false,
        array($this, \'_null\'),
        \'djg_admin_area_branding_header\',
        \'aab_header_logo_section\'
    );

}

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

您应该使用register_setting() 将选项列入白名单。它根本不会影响UI。

register_setting( \'my_option_group\', \'my_option\', \'optional_sanitize_callback\' ); 

结束

相关推荐