do_settings_sections 在 WordPress 管理员中不工作
do_settings_sections not working in WordPress admin
我正在使用 WordPress 设置 API 为我的主题构建一个选项页面。我无法让输入元素显示在管理员中。我想我已经将问题缩小到 do_settings_sections();
函数,因为它是唯一不在前端呈现任何内容的东西。
function cbc_theme_init() {
register_setting( 'cbcsettings-group', 'carousel_options' );
add_settings_section(
'cbc_carousel_section',
'Carousel Settings',
'cbc_carousel_section_callback',
'cbcsettings'
);
add_settings_field(
'cbc_slide_one_title',
'Title',
'cbc_slide_title_callback',
'cbcsettings',
'cbc_carousel_section'
);
} // end cbc_theme_init
function cbc_carousel_section_callback() {
} // end cbc_carousel_section_callback
function cbc_slide_title_callback() {
$options = get_option( 'carousel_options' );
/*if( !isset( $options[ 'slide_one_title' ] ) ) {
$options[ 'slide_one_title' ] = '';
}*/
$html = '<input type="text" id="cbc_slide_one_title" name="carousel_options[slide_one_title]" value="' . $options[ 'slide_one_title' ] . '" />';
$html .= '<lable for="cbc_slide_one_title">Title for first slide.</label>';
echo $html;
} // end cbc_slide_title_callback
function cbc_add_theme_page() {
add_theme_page(
__( 'Theme Options', 'cbcsettings' ),
__( 'Theme Options', 'cbcsettings' ),
'edit_theme_options',
'cbcsettings',
'cbc_theme_options_page'
);
} // end cbc_add_theme_page
add_action( 'admin_menu', 'cbc_add_theme_page' );
function cbc_theme_options_page() {
?>
<div class="wrap">
<h2>Theme Options - <?php echo wp_get_theme(); ?></h2>
<?php get_settings_errors(); ?>
<form method="post" action="options.php">
<?php
settings_fields( 'cbcsettings-group' );
do_settings_sections( 'cbcsettings' );
submit_button();
?>
</form>
</div>
<?php
} // end cbc_theme_options_page
终于明白了!显然,我忘了启动我的代码。我需要做的就是调用以下函数 add_filter( 'admin_init', 'cbc_theme_init' );
我正在使用 WordPress 设置 API 为我的主题构建一个选项页面。我无法让输入元素显示在管理员中。我想我已经将问题缩小到 do_settings_sections();
函数,因为它是唯一不在前端呈现任何内容的东西。
function cbc_theme_init() {
register_setting( 'cbcsettings-group', 'carousel_options' );
add_settings_section(
'cbc_carousel_section',
'Carousel Settings',
'cbc_carousel_section_callback',
'cbcsettings'
);
add_settings_field(
'cbc_slide_one_title',
'Title',
'cbc_slide_title_callback',
'cbcsettings',
'cbc_carousel_section'
);
} // end cbc_theme_init
function cbc_carousel_section_callback() {
} // end cbc_carousel_section_callback
function cbc_slide_title_callback() {
$options = get_option( 'carousel_options' );
/*if( !isset( $options[ 'slide_one_title' ] ) ) {
$options[ 'slide_one_title' ] = '';
}*/
$html = '<input type="text" id="cbc_slide_one_title" name="carousel_options[slide_one_title]" value="' . $options[ 'slide_one_title' ] . '" />';
$html .= '<lable for="cbc_slide_one_title">Title for first slide.</label>';
echo $html;
} // end cbc_slide_title_callback
function cbc_add_theme_page() {
add_theme_page(
__( 'Theme Options', 'cbcsettings' ),
__( 'Theme Options', 'cbcsettings' ),
'edit_theme_options',
'cbcsettings',
'cbc_theme_options_page'
);
} // end cbc_add_theme_page
add_action( 'admin_menu', 'cbc_add_theme_page' );
function cbc_theme_options_page() {
?>
<div class="wrap">
<h2>Theme Options - <?php echo wp_get_theme(); ?></h2>
<?php get_settings_errors(); ?>
<form method="post" action="options.php">
<?php
settings_fields( 'cbcsettings-group' );
do_settings_sections( 'cbcsettings' );
submit_button();
?>
</form>
</div>
<?php
} // end cbc_theme_options_page
终于明白了!显然,我忘了启动我的代码。我需要做的就是调用以下函数 add_filter( 'admin_init', 'cbc_theme_init' );