晚上好。
我想使用设置API将WordPress插件的多个页面和多个部分保存在一个选项中。不幸的是,我总是遇到这样的问题:如果我要保存一个节,它将覆盖该选项并且不存储其他页面和节中的值。是否可以将整个插件的所有选项保存在多个页面和部分的一个选项条目中?
basic.php
*sev
basic2.php
<?php settings_errors(); ?>
<form method="POST" action="options.php">
<?php
if ( $active_tab === '1' ) {
?>
<?php
settings_fields( 'options_group' );
do_settings_sections( 'section1' );
?>
<?php
}
else if ( $active_tab === '2' ) {
?>
<?php
settings_fields( 'options_group' );
do_settings_sections( 'section2' );
?>
<?php
}
else if ( $active_tab === '3' ) {
?>
<?php
settings_fields( 'options_group' );
do_settings_sections( 'section3' );
?>
<?php
}
submit_button();
?>
<form>
</div>
要注册各个字段,我使用以下功能。
<div class="tab-content">
<?php
if ( $active_tab === '1' ) {
}
else if ( $active_tab === '2' ) {
?>
<?php settings_errors(); ?>
<form method="POST" action="options.php">
<?php
settings_fields( 'options_group' );
do_settings_sections( 'section4' );
submit_button();
?>
</form>
<?php
}
?>
</div>
最后是我注册的部分和字段。
public function register_custom_fields() {
foreach ( $this->settings as $setting ) {
register_setting ( $setting['option_group'], $setting['option_name'], ( isset( $setting['callback'] ) ?
$setting['callback'] : '' ) );
}
foreach ( $this->sections as $section ) {
add_settings_section ( $section['id'], $section['title'], ( isset( $section['callback'] ) ?
$section['callback'] : '' ), $section['page'] );
}
foreach ( $this->fields as $field ) {
add_settings_field ( $field['id'], $field['title'], ( isset( $field['callback'] ) ? $field['callback'] : '' ),
$field['page'], $field['section'], ( isset( $field['args'] ) ? $field['args'] : '' ) );
}
}