以下是我创建设置页面输出的方式:
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();
}
});
});
但是,我想使用PHP
style="display: none"
对于初始显示,使用jQuery解决方案避免页面加载时出现任何闪烁,但我看不到任何访问上述内容的方法
tr
. 我应该更换吗
do_settings_sections
用某种自定义方式提供我的设置输出?
最合适的回答,由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
\'s
class
到
hidden
适用于
display: none
到
tr
要素(
hidden
中的现有CSS规则
wp-admin/css/common.css
加载到WordPress管理页面)。