【问题标题】:Basic Wordpress plugin settings issues基本的 Wordpress 插件设置问题
【发布时间】:2013-12-01 07:40:30
【问题描述】:

我一直在尝试将设置保存到我正在创建的插件的 Wordpress 数据库中,但我一直被

“警告:非法字符串偏移 'iconomysignup_amount' 在 /home/tomatocr/public_html/wp-content/plugins/iconomysignup/iconomy-signup.php 在第 52 行"

这是我正在使用的插件代码:

<?php
    /**
     * Plugin Name: Tomatocraft iConomy Signup
     * Description: A simple plugin that gives a user-defined amount of coins to the user who just signed up.
     * Version: 1.0
     * Author: minejames1
     * Author URI: http://twitter.com/jaycraft_
     */

    // add the admin options page
    add_action('admin_menu', 'plugin_admin_add_page');
    function plugin_admin_add_page() {
        add_options_page('Tomatocraft iConomy Signup', 'iConomy Signup', 'manage_options', 'iconomysignup', 'plugin_options_page');
    }
    // display the admin options page
    function plugin_options_page() {
?>
<div class="wrap">
    <?php screen_icon();?>
    <h2>Set signup iConomy reward</h2>
    <form action="options.php" method="post">
        <?php settings_fields('plugin_options'); ?>
        <?php do_settings_sections('iconomysignup'); ?>
        <?php submit_button(); ?>
    </form>
</div>

<?php
    } // end of page

    // add the admin settings and such
    add_action('admin_init', 'plugin_admin_init');
    function plugin_admin_init(){
        register_setting( 'plugin_options', 'plugin_options', 'plugin_options_validate' );
        add_settings_section('plugin_main', 'Main Settings', 'plugin_section_text', 'iconomysignup');
        add_settings_field('plugin_iconomysignup_amount', 'Amount of Tomatoes', 'plugin_setting_string', 'iconomysignup', 'plugin_main');
    }
    function plugin_options_validate($input) {
        $options = get_option('plugin_options');
        $options['iconomysignup_amount'] = trim($input['iconomysignup_amount']);
        if(!is_numeric($options['iconomysignup_amount'])) {
            $options['iconomysignup_amount'] = '';
        }
        return $options;
    }
    function plugin_section_text() {
        echo '<p>Enter in the amount of Tomatoes the user should receive when signing up.</p>';
    }
    function plugin_setting_string() {
        $options = get_option('plugin_options');
        echo "<input id='plugin_iconomysignup_amount' name='plugin_options[iconomysignup_amount]' size='40' type='text' value='{$options['iconomysignup_amount']}' />";
    }
?>

如果有人能指出我所犯的错误,那就太好了——它们可能很愚蠢而且很明显,但作为 Wordpress CMS 的初学者,这一切都非常令人困惑。谢谢。

【问题讨论】:

    标签: php wordpress


    【解决方案1】:

    在第 52 行更改此内容

    value='{$options['iconomysignup_amount']}'
    

    有了这个

    value='{$options[iconomysignup_amount]}'
    

    value=\"{$options['iconomysignup_amount']}\"
    

    【讨论】:

    • 它并没有错,只是给你提示修复你的编码错误。
    【解决方案2】:

    你可以试试:

    echo '<input id="plugin_iconomysignup_amount" name="plugin_options[iconomysignup_amount]" size="40" type="text" value="'.$options['iconomysignup_amount'].'" />';
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-10-31
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-11-13
      • 1970-01-01
      • 2021-10-07
      相关资源
      最近更新 更多