dongrong8972 2014-06-11 06:37
浏览 12

WordPress选项页面未显示提交值

I have to create an option page using array in my wordpress theme. after submitting all fill up information removed while i am using

var_dump( $this->options) show blank array(){}

I want when submitting option page form submit information show in the input box and i will get_option value in some variable so that i have to display the information in my theme.

   <?php 
class MySettingsPage
{
    private $options;
    public function __construct()
    {
        add_action( 'admin_menu', array( $this, 'bguru_register_options_page' ) );
        add_action( 'admin_init', array( $this, 'bguru_register_settings' ) );
    }

    public function bguru_register_options_page()
    {
        // This page will be under "Settings"
        add_theme_page('Business Guru Options',
                'Theme Customizer',
                'edit_theme_options',
                'bguru-options',
                array( $this, 'bguru_options_page')
        );
    }

    public function bguru_options_page()
    {

        // Set class property
          $bguru_logo = is_array( get_option( 'bguru_logo' ) ) ? get_option( 'bguru_logo' ) : array();

         $bguru_vimeo = is_array( get_option( 'bguru_vimeo' ) ) ? get_option( 'bguru_vimeo' ) : array();

          $this->options = array_merge( $bguru_logo, $bguru_vimeo);

var_dump($this->options);
        ?>
        <div class="wrap">
            <?php screen_icon(); ?>
            <h1>Business Guru Options</h1>
            <form method="post" action="options.php">
                <?php
                // This prints out all hidden setting fields
                settings_fields( 'defaultbg' );
                do_settings_sections( 'defaultbg' );
                submit_button();
                ?>
            </form>
        </div>
        <?php
    }

    public function bguru_register_settings()
    {
        register_setting('defaultbg','bguru_logo',  array( $this, 'sanitize' ) );
        register_setting('defaultbg', 'bguru_vimeo',  array( $this, 'sanitize' ));
        add_settings_section(
                'setting_section_id', // ID
                'General',
                array( $this, 'print_section_info' ), // Callback
                'defaultbg' // Page

        );

        add_settings_field(
                'bguru_logo', // ID
                'Logo', // Title
                array($this,'logo_callback' ), // Callback
                'defaultbg', // Page
                'setting_section_id' // Section
        );

        add_settings_field(
                'bguru_vimeo', // ID
                'Vimeo', // Vimeo
                array( $this, 'socialv_callback' ), // Callback
                'defaultbg', // Page
                'setting_section_id' // Section
        );
    }

    public function sanitize( $input )
    {
        $new_input = array();

        if( isset( $input['bguru_logo'] ) )
            $new_input['bguru_logo'] = sanitize_text_field( $input['bguru_logo'] );

        if( isset( $input['bguru_vimeo'] ) )
            $new_input['bguru_vimeo'] = sanitize_text_field( $input['bguru_vimeo'] );

        return $new_input;
    }
    public function print_section_info()
    {
        print 'Enter your settings below:';
    }

    public function logo_callback()
    {
        printf('<input type="text" id="bguru_logo"  size="50" name="bguru_logo" value="%s" />',
                isset( $this->options['bguru_logo'] ) ? esc_attr( $this->options['bguru_logo']) : ''
        );
    }

    public function socialv_callback()
    {
        printf('<input type="text" id="bguru_vimeo"  size="50" name="bguru_vimeo" value="%s" />',
                isset( $this->options['bguru_vimeo'] ) ? esc_attr( $this->options['bguru_vimeo']) : ''
        );
    }
}
if( is_admin() )
    $my_settings_page = new MySettingsPage();         
  • 写回答

0条回答 默认 最新

    报告相同问题?

    悬赏问题

    • ¥15 Vue3 大型图片数据拖动排序
    • ¥15 划分vlan后不通了
    • ¥15 GDI处理通道视频时总是带有白色锯齿
    • ¥20 用雷电模拟器安装百达屋apk一直闪退
    • ¥15 算能科技20240506咨询(拒绝大模型回答)
    • ¥15 自适应 AR 模型 参数估计Matlab程序
    • ¥100 角动量包络面如何用MATLAB绘制
    • ¥15 merge函数占用内存过大
    • ¥15 使用EMD去噪处理RML2016数据集时候的原理
    • ¥15 神经网络预测均方误差很小 但是图像上看着差别太大