未定义的偏移量:1067行的>[...]/wp-includes/capabilities.php中的0

时间:2013-01-28 作者:James Mitch

嘿,我在我的localhost设置中得到了这个错误消息,但只有在启用Genesis框架的情况下;WordPress二十一行。当我想创建一个新帖子时,就会发生这种情况。如果我刷新页面,错误会重复,但帖子本身会被创建,一切似乎都很好。

有人知道这是什么原因吗?

Notice: Undefined offset: 0 in /var/www/secret/htdocs/wp-includes/capabilities.php on line 1067
Notice: Undefined offset: 0 in /var/www/secret/htdocs/wp-includes/capabilities.php on line 1067
Warning: Cannot modify header information - headers already sent by (output started at /var/www/secret/htdocs/wp-includes/capabilities.php:1067) in /var/www/secret/htdocs/wp-includes/pluggable.php on line 876
这是一个新安装的未经修改的Genesis框架。

2 个回复
最合适的回答,由SO网友:Chris_O 整理而成

你在《创世纪》中发现了一个bug

Xdebug堆栈将罪魁祸首追踪为genesis_save_custom_fields() 调用的函数current_user_can() 具有一个单独的功能(edit\\u post和edit\\u page),它还需要一个额外的参数,在本例中是缺少的post ID。

current_user_can() 呼叫has_cap() 哪个呼叫map_meta_cap() 它对功能名称执行switch语句。看见line 1067 of capabilities.php. 这两个未定义的偏移量通知来自$args[0],它不是一个数组,因为Genesis中当前的\\u user\\u can调用中缺少post id。

这个Cannot modify header information - headers already sent 警告来自Xdebug打印PHP通知。事实上,如果您没有使用Xdebug,除非您检查日志,否则您甚至看不到PHP通知,因为错误出现在附加的save\\u post函数中,并且页面被刷新,即使WP\\u DEBUG设置为true,也会阻止警告/通知/错误显示在页面上。

修复:lib/functions/options的第234行。php更改:

/** Check the user allowed to edit the post or page */
if ( ( \'page\' == $post->post_type && ! current_user_can( \'edit_page\' ) ) || ! current_user_can( \'edit_post\' ) )
    return;
收件人:

/** Check the user allowed to edit the post or page */
if ( ! current_user_can( \'edit_post\', $post->ID ) )
    return;
还要注意的是,不需要检查post\\u类型,因为edit_pageedit_post 盖子可以互换。

SO网友:Travis Smith

Mark Jaquith在审计中于1.17在trunk中修复了此问题。我已经提交了1.9.2版本的申请单。

就个人而言,我认为这是WordPress的一个问题,因为map\\u meta\\u cap()不检查或清理$args[0]。所以我提交了一份ticket 因此,要将其转换为WordPress核心。

结束

相关推荐

将/CATEGORY/CARS重写为/Themes/Cars

我知道有很多关于这方面的问题和帖子,但是我找不到一个解决方案或我的特定问题的现有线索。如果我列出我的类别并单击“cars”,url如下所示url/category/cars是否可以在函数中使用某些函数。php更改单词category 进入,进入。topicsurl/topics/cars 有什么想法吗?提前感谢您!

未定义的偏移量:1067行的>[...]/wp-includes/capabilities.php中的0 - 小码农CODE - 行之有效找到问题解决它

未定义的偏移量:1067行的>[...]/wp-includes/capabilities.php中的0

时间:2013-01-28 作者:James Mitch

嘿,我在我的localhost设置中得到了这个错误消息,但只有在启用Genesis框架的情况下;WordPress二十一行。当我想创建一个新帖子时,就会发生这种情况。如果我刷新页面,错误会重复,但帖子本身会被创建,一切似乎都很好。

有人知道这是什么原因吗?

Notice: Undefined offset: 0 in /var/www/secret/htdocs/wp-includes/capabilities.php on line 1067
Notice: Undefined offset: 0 in /var/www/secret/htdocs/wp-includes/capabilities.php on line 1067
Warning: Cannot modify header information - headers already sent by (output started at /var/www/secret/htdocs/wp-includes/capabilities.php:1067) in /var/www/secret/htdocs/wp-includes/pluggable.php on line 876
这是一个新安装的未经修改的Genesis框架。

2 个回复
最合适的回答,由SO网友:Chris_O 整理而成

你在《创世纪》中发现了一个bug

Xdebug堆栈将罪魁祸首追踪为genesis_save_custom_fields() 调用的函数current_user_can() 具有一个单独的功能(edit\\u post和edit\\u page),它还需要一个额外的参数,在本例中是缺少的post ID。

current_user_can() 呼叫has_cap() 哪个呼叫map_meta_cap() 它对功能名称执行switch语句。看见line 1067 of capabilities.php. 这两个未定义的偏移量通知来自$args[0],它不是一个数组,因为Genesis中当前的\\u user\\u can调用中缺少post id。

这个Cannot modify header information - headers already sent 警告来自Xdebug打印PHP通知。事实上,如果您没有使用Xdebug,除非您检查日志,否则您甚至看不到PHP通知,因为错误出现在附加的save\\u post函数中,并且页面被刷新,即使WP\\u DEBUG设置为true,也会阻止警告/通知/错误显示在页面上。

修复:lib/functions/options的第234行。php更改:

/** Check the user allowed to edit the post or page */
if ( ( \'page\' == $post->post_type && ! current_user_can( \'edit_page\' ) ) || ! current_user_can( \'edit_post\' ) )
    return;
收件人:

/** Check the user allowed to edit the post or page */
if ( ! current_user_can( \'edit_post\', $post->ID ) )
    return;
还要注意的是,不需要检查post\\u类型,因为edit_pageedit_post 盖子可以互换。

SO网友:Travis Smith

Mark Jaquith在审计中于1.17在trunk中修复了此问题。我已经提交了1.9.2版本的申请单。

就个人而言,我认为这是WordPress的一个问题,因为map\\u meta\\u cap()不检查或清理$args[0]。所以我提交了一份ticket 因此,要将其转换为WordPress核心。

相关推荐

can't get errors

我正在网上直播一个主题。我的网站不再出现错误。我不知道发生了什么事。页面仅在错误所在的位置结束。我只是在页面中添加了一个函数。php文件还不存在,应该有一个错误。我试过很多东西。我也没有看到错误日志。define(\'WP_DEBUG\', true); if (WP_DEBUG) { define(\'WP_DEBUG_LOG\', true); define(\'WP_DEBUG_DISPLAY\', true); @ini_set(\'disp