【问题标题】:wordpress setting API Illegal string offset error in my codewordpress setting API Illegal string offset error in my code
【发布时间】:2014-06-27 19:01:54
【问题描述】:

今天开始创建设置 API 编写代码为我的主题创建简单的选项页面这是我的完整代码

运行我的代码时出现此错误

警告:第 65 行 C:\wamp\www\wp39\wp-content\plugins\JW_Options\jw_options.php 中的非法字符串偏移 'jw_banner_heading'

请问这个问题怎么解决??

<?php

类 JW_Options {

private $options;

public function __construct() {
    add_action('admin_menu', array($this, 'add_menu_page') );
    add_action('admin_init', array($this, 'register_settings_and_fields'));

    //get_option($option_name);
    $this->options = get_option('jw_plugin_options');
}

public function add_menu_page() {
    // it is add the menu page to the settings page in the dashboard
    //add_options_page( $page_title, $menu_title, $capability, $menu_slug, $function);
    add_options_page('Theme Options', 'Theme Options', 'administrator', __FILE__, array($this, 'display_options_page'));
}

public function display_options_page() {
?>
    <div class="wrap">
        <h2>MY Theme Options</h2>
        <form action="options.php" method="post" enctype="multipart/form-data">
            <!-- outputs action and options_page fields for a setting page -->
            <!-- settings_fields( $option_group ); -->
            <?php settings_fields( 'jw_plugin_options' ); ?>
            <!-- do_settings_sections( $page ); -->
            <?php do_settings_sections( __FILE__ ); ?>
            <p class="submit">
                <input type="submit" name="submit" id="submit" class="button button-primary" value="Save Settings">
            </p>
        </form>
    </div>
<?php
}

public function register_settings_and_fields() {
    //delete_option('jw_plugin_options');
    //register_setting( $option_group, $option_name, $sanitize_callback );
    register_setting('jw_plugin_options', 'jw_plugin_options' );
    //add_settings_section( $id, $title, $callback, $page );
    add_settings_section('jw_main_section', 'Main Settings', array($this, 'jw_main_section_cb'), __FILE__);
    //add_settings_field( $id, $title, $callback, $page, $section, $args );
    add_settings_field('jw_banner_heading', 'Banner Heading', array($this, 'jw_banner_heading_setting'), __FILE__, 'jw_main_section');
    add_settings_field('jw_logo', 'Your Logo', array($this, 'jw_logo_setting'), __FILE__, 'jw_main_section');
}

public function jw_main_section_cb() {

}

public function jw_banner_heading_setting() {
    echo "<input type='text' name='jw_plugin_options[jw_banner_heading]' id='jw_banner_heading' value='{$this->options['jw_banner_heading']}' />"; 
}

public function jw_logo_setting() {
    echo '<input type="file" name="jw_logo_upload" />';
}

}

if(is_admin()) $JW_Options = new JW_Options();

?>

【问题讨论】:

    标签: php wordpress api setting


    【解决方案1】:
    1. 创建清理回调函数
    2. 点击保存按钮

    【讨论】:

      猜你喜欢
      • 2016-11-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-02-02
      • 1970-01-01
      • 1970-01-01
      • 2022-12-27
      相关资源
      最近更新 更多