设置API-设置及其描述的格式容器

时间:2019-05-22 作者:Ryszard Jędraszyk

以下是我创建设置页面输出的方式:

public function create_settings_page() {

    $this->options = $this->lal_get_settings();     

    ?>
    <div class="wrap">
        <h1>My plugin name</h1>
        <form method="post" action="options.php">
        <?php
            // Output nonce, action, and option_page fields for a settings page.
            settings_fields( \'lal_settingz\' );
            do_settings_sections( $this->settings_page_name );
            submit_button();
        ?>
        </form>
    </div>
    <?php
}
所有我的设置都显示在tr 标签,th 正在设置说明和td 设置自身。我想操纵整个tr, 例如应用display: none 如果其他设置具有特定值,请将其包装tr 具有div 对这个做同样的事情div 要素

使用jQuery,我可以访问tr 作为我的设置元素的父元素的父元素,如下所示:

jQuery(document).ready(function($) {    

    $(\'#lal_display_type\').change(function() {      
        if (this.value === \'icon\') {
            $(\'#lal_login_text\').parents().eq(1).hide();
        } else if (this.value === \'links\') {
            $(\'#lal_login_text\').parents().eq(1).show();
        }
    });

});
但是,我想使用PHPstyle="display: none" 对于初始显示,使用jQuery解决方案避免页面加载时出现任何闪烁,但我看不到任何访问上述内容的方法tr. 我应该更换吗do_settings_sections 用某种自定义方式提供我的设置输出?

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

似乎无法修改<tr> 标记,但要使其在默认情况下隐藏(或最初隐藏),则可以使用传递给的第六个参数add_settings_field(), 这是$args:

add_settings_field(
    \'my_field\',           // ID
    \'My Field\',           // Title
    \'my_field_callback\',  // Callback
    \'my-setting-admin\',   // Page/slug
    \'setting_section_id\', // Section
    array( \'class\' => \'hidden\' )
);
如您所见,我们设置tr\'sclasshidden 适用于display: nonetr 要素(hidden 中的现有CSS规则wp-admin/css/common.css 加载到WordPress管理页面)。

相关推荐