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' );