仅在Google Chrome中保存主题选项时出现无效错误

时间:2011-03-16 作者:SteveLambert

我的用户在试图编辑我的主题WPFolio中的自定义主题选项时遇到“无效错误”。选项(只是一些CSS规则:页面容器颜色、字体颜色、标题/正文字体等)在Firefox、Safari和IE中发挥应有的作用,他们所做的任何更改都将显示在Chrome fine中。但当他们试图在Chrome中编辑/保存主题选项时,他们在Chrome中保存时,会在特定字段上出现“无效值”错误,即使他们没有接触该字段。

奇怪的是,无论我使用什么浏览器,我都无法复制错误。。。

有什么想法吗?谢谢

查看上的主题文件github.

1 个回复
SO网友:kaiser

嗯,是的。我不知道你的问题到底是什么,所以请注意下面的代码。

You should use the settings API. Here\'s a (new) tutorial by Chip Bennet. 按照您调用当前设置选项的方式(每个子数组调用一个get\\u选项),您只有大约11个db调用用于您的选项。如果您不考虑切换到设置API,那么无论如何只应调用一次get\\u选项,将其保存到如下变量中$current_options = get_options(\'whatever\'); 然后用$current_options[\'some_sub_arr\'];.

我尽量不苛刻,所以请不要误会:文件(对我来说)几乎无法读取。这么多不必要的制表符和换行符。我希望我能帮忙,但我真的不能帮你解决你的具体问题。

也许有帮助:有一个lot 关于这个主题我可以说的其他东西。我希望你能接受一些(积极的)批评(这有助于改进)。

只要不想在字符串中使用$var,就不必使用双引号示例:
array( "key" => "value" ) 可以写为array( \'key\' => \'value\' ) 而且将会是much 更快(最多快5倍)array( \'0\' => \'value\' ) 如果不指定键,则默认为数字数组

  • Never 永远不要使用变量名称,例如$options 在课堂外时。这些名称将填充全局名称空间,有时(肯定)会与其他一些内容发生冲突,以便集中处理名称(而不是分布在所有文件中,如$options):

     $wpfolio_options_default = array ( \'...\' => \'...\' );
    
        define ( \'WPFOLIO_OPTS\', \'wpfolio_options_theme\' );
    
    // your global $var for theme users - do this only when you\'re really sure that nothing will change in there. Ever.
    $wpfolio_options = get_option( WPFOLIO_OPTS );
    
        function template_tag_whatever() 
        {
           // If you\'re in the need to change the name of the options field in the DB, change it above in the define call
           $all_options = get_option( WPFOLIO_OPTS );   
           // if you\'ve made your options globaly available (if the behavior might change - themes may break, so do this with caution)
           // global $wpfolio_options
           // $background = $wpfolio_options[\'background_class\'];
           $background = $all_options[\'background_class\'];
            ?>
            <div class="<?php echo $background; ?>">
             <!-- some stuff -->
            </div>
            <?php
        }
    
    // inside a template:
    global $wpfolio_options;
    if ( isset($wpfolio_options[\'portfolio_category\']) )
    {
    echo $wpfolio_options[\'portfolio_category\'];
    }
    
    但是:处理设置API仍然更好,也更容易。上面提到的示例只是为了向您展示通过常量处理名称是多么容易(请参见STYLESHEETPATH等)。

  • 结束

    相关推荐

    Displaying oEmbed errors?

    有时,通过oEmbed嵌入项目是不可能的,例如,当YouTube视频已禁用嵌入时。The oEmbed service will return a 401 Unauthorized, 并且不会转换代码。有没有办法通知用户这一点?当前的工作流是非直观的(至少对我来说),我更喜欢在WordPress页面上,或者更好的是,在编辑器中显示一条消息,说明对象无法嵌入。