未定义的索引操作无法修改标题

时间:2016-03-16 作者:AlanB

我今天安装了一个新的Wordpress主题,当我尝试发布任何内容时,我会遇到以下错误:;

“注意:未定义索引:中的操作”/home/content/00/00000000/html/sites/website.com/wp-content/themes/bedford/inc/bedford-metaboxes.php 在线601

警告:无法修改标题信息–标题已由发送(输出开始于/home/content/00/00000000/html/sites/website.com/wp-content/themes/bedford/inc/bedford-metaboxes.php:601) in /home/content/00/00000000/html/sites/website.com/wp-includes/pluggable.php 在线1228

601左右的代码是:

add_action( \'admin_init\', \'bedford_cmb1_to_cmb2_post_meta\' );
function bedford_cmb1_to_cmb2_post_meta(){
    global $pagenow;
    // If screen is not single post edit do nothing.
    if ( \'post.php\' === $pagenow && \'edit\' === $_GET[\'action\'] && is_numeric($_GET[\'post\'])) {
        $_rpit_meta_fields_repeat_group = get_post_meta( $_GET[\'post\'], \'_rpit_meta_fields_repeat_group\', true);
        // Remove empty _rpit_meta_fields_repeat_group post meta if exist.
        if( is_array($_rpit_meta_fields_repeat_group) && empty($_rpit_meta_fields_repeat_group) ) {
            print_r(\'empty array found\');
            delete_post_meta($_GET[\'post\'], \'_rpit_meta_fields_repeat_group\');
        }
    }
}
如果有人能帮忙,我将不胜感激。

1 个回复
SO网友:benomatis

这个Cannot modify header 错误实际上是由第一个错误引起的,因为错误是在调用标头的页面上打印的,因此在这之后出现的任何试图修改标头的代码都将生成Cannot modify header 错误

至于Undefined index: action 错误,显然主题作者假设action superglobal的参数$_GET 将始终设置在贴子页面上(即URL应具有...post.php?action=something 在大多数情况下,这似乎都是正确的,但聪明的程序员总是会做好最坏的准备,并检查变量的存在(尽管知道出现此错误时显示的完整URL会很有趣)。

为了避免这种情况,他们需要使用isset($_GET[\'action\']) (或者array_key_exists(\'action\', $_GET), 在上执行相同的操作$_GET[\'post\'], 还假设始终设置,因此if 情况如下:

// ...
if ( \'post.php\' === $pagenow && isset($_GET[\'action\']) && \'edit\' === $_GET[\'action\'] && isset($_GET[\'post\']) && is_numeric($_GET[\'post\'])) {
    // ...
}
有几种方法可以引入此解决方案:

建议与主题所有者联系,让他们解决这个问题。在等待的时候,你也可以做。。。

如果您决定更新原始主题,然后又想升级主题,请做好再次升级的准备。

或者,您可以删除该功能(remove_action) 在您的functions.php 在您的子主题中(假设您正在使用一个主题),并添加正确的主题以使用中使用的相同挂钩替换它add_action 原始主题(在本例中为\'bedford_cmb1_to_cmb2_post_meta\').

相关推荐

500 Internal Errors

我正在将当前的Eduma主题更新为最新版本(3.0.9.1),目前的版本是3.0.7。我正在运行WordPress 4.7.5。但是,在运行更新时,我得到Update Failed: Internal Server Error 安装过程中的消息。所以我启动了这个过程,它运行了一分钟,然后它就停止了工作,我陷入了维护模式。所以我必须手动删除.maintenance 来自我的服务器的文件。我截图了我在错误中看到的内容。我在WordPress网站上运行了调试模式,这就是我所拥有的[31-May-2017 15: