【问题标题】:Wordpress Theme development: Getting Undefined index errorWordpress 主题开发:出现未定义索引错误
【发布时间】:2011-03-16 00:59:03
【问题描述】:

你好,我是一个 wordpress 主题开发者。我创建了一个主题,它在 WP_DEBUG=False 中运行良好,但在设置 WP_DEBUG=True 时出现未定义的索引错误

我的主题有一个选项页面,每当我点击保存时,我都会收到以下错误:

Notice: Undefined index: ang_temp in C:\xampp\htdocs\wordpress\wp-content\themes\Angelia\functions.php  on line 147

Notice: Undefined index: ang_breadcrumbs in C:\xampp\htdocs\wordpress\wp-content\themes\Angelia\functions.php on line 147

Notice: Undefined index: ang_hide_social in C:\xampp\htdocs\wordpress\wp-content\themes\Angelia\functions.php on line 147

Notice: Undefined index: ang_hide_tw in C:\xampp\htdocs\wordpress\wp-content\themes\Angelia\functions.php on line 147

Notice: Undefined index: ang_hide_fb in C:\xampp\htdocs\wordpress\wp-content\themes\Angelia\functions.php on line 147

Notice: Undefined index: ang_hide_ms in C:\xampp\htdocs\wordpress\wp-content\themes\Angelia\functions.php on line 147

Notice: Undefined index: ang_hide_rss in C:\xampp\htdocs\wordpress\wp-content\themes\Angelia\functions.php on line 147

Warning: Cannot modify header information - headers already sent by (output started at C:\xampp\htdocs\wordpress\wp-content\themes\Angelia\functions.php:147) in C:\xampp\htdocs\wordpress\wp-content\themes\Angelia\functions.php on line 156

这是我的主题functions.php 我不知道我做错了什么。我对php知之甚少。希望有php知识或者wordpress主题开发知识的小伙伴可以帮忙。

【问题讨论】:

    标签: wordpress wordpress-theming undefined-index


    【解决方案1】:
    146. foreach ($options as $value) {
    147.   update_option( $value['id'], $_REQUEST[ $value['id'] ] ); }
    

    产生这个错误的那段代码(上面)没有检查$_REQUEST[ $value['id'] ]是否存在。您收到的错误表明它没有(您只会在启用完整错误检查的情况下收到此通知)。您的代码的其他部分正在在使用它之前检查这个变量的存在(所以它们没问题),并建议你应该在这里做同样的事情。

    你说你的主题在调试关闭时工作正常,所以这表明你只需要在使用它之前检查这个变量的存在。类似的东西(替换上面的两行):

    foreach ($options as $value) {
      if (isset($_REQUEST[ $value['id'] ])) {
        update_option( $value['id'], $_REQUEST[ $value['id'] ] );
      }
    }
    

    但是,尽管这应该可以防止您的“错误”(它们实际上只是 通知),但我不熟悉 wordpress 主题,因此无法确定这是否是预期行为或是否存在是某种潜在的错误。

    【讨论】:

    • 非常感谢你说得通。用你的线条替换线条。然后将第 149-152 行替换为 # if( isset( $_REQUEST[ $value['id'] ] ) ) { # $optionvar[$value['id']] = $_REQUEST[ $value['id'] ]; # } else { # $optionvar[$value['id']] = null;现在可以正常工作,没有任何错误。 :D 非常感谢您指出错误原因
    • 不客气。你说你然后用 that 代码替换了第 149-152 行。当我查看您的原始脚本(?)时,那个代码已经存在,实际上给了我这样的想法,即上面的代码可能缺少导致您的问题的代码。如果您不介意我问,这个主题适用于哪个版本的 WordPress?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-07-14
    • 2013-09-11
    • 2019-04-03
    • 2018-01-26
    • 2016-08-25
    • 1970-01-01
    • 2014-05-30
    相关资源
    最近更新 更多