WORDPRESS:通知:未定义的偏移量 - 我应该怎么做?

WORDPRESS: Notice: Undefined offset - What should I do?

您好,这是我的wordpress页面。每个用户都可以看到它。我该如何解决?

为了安全起见,我将实际目录替换为“...”

Notice: Undefined offset: 1 in /.../functions.php on line 163

Notice: Undefined offset: 1 in /.../functions.php on line 168

Notice: Undefined offset: 3 in /.../functions.php on line 169

Warning: Division by zero in /.../functions.php on line 172

这是我在 Functions.php 中的代码:

function gal_add_new_height_width($embed){

    $no_prev_match = 0;
    preg_match('/width="(\d+)(px)?" height="(\d+)(px)?"/', $embed, $matches);

    if(!$matches[1]){
        $no_prev_match = 1;
        preg_match('/width: (\d+)px; height: (\d+)px"/', $embed, $matches);
    }

    $width = intval($matches[1]);
    $height = intval($matches[3]);

    $new_width = gal_width() * 3 + gal_gap() * 2;
    $new_height = intval($new_width * $height / $width);

    $embed = preg_replace('/width="(\d+)(px)?" height="(\d+)(px)?"/', 'width="' . $new_width . '" height="' . $new_height . '"', $embed); 
    $embed = preg_replace('%style=".*"%smUi',"",$embed);    
    return $embed;
}

提前致谢。

基本上,您正在引用不存在的数组值。它试图在给定的输入中找到匹配的字符串,但找不到。这可能是由于多种原因造成的,none 我们中的任何一个人都可能为您解决。

为了正确解决问题,您需要了解这段代码的作用以及为什么输入的字符串不包含它要查找的文本。

我犹豫了,但作为临时解决方法,您可以执行以下操作:

function gal_add_new_height_width($embed){

    $no_prev_match = 0;
    if (preg_match('/width="(\d+)(px)?" height="(\d+)(px)?"/', $embed, $matches)) {

        if(!$matches[1]){
            $no_prev_match = 1;
            preg_match('/width: (\d+)px; height: (\d+)px"/', $embed, $matches);
        }

        $width = intval($matches[1]);
        $height = intval($matches[3]);

        $new_width = gal_width() * 3 + gal_gap() * 2;
        $new_height = intval($new_width * $height / $width);

        $embed = preg_replace('/width="(\d+)(px)?" height="(\d+)(px)?"/', 'width="' . $new_width . '" height="' . $new_height . '"', $embed); 
        $embed = preg_replace('%style=".*"%smUi',"",$embed);
    }    
    return $embed;
}

但请注意,这不能解决您的问题。它只会让这个函数什么都不做而不是出错。因此,在您完全理解原因之前,您的 wp 站点可能会在其他地方损坏。