图像大小调整脚本 (WordPress) 的 WP 调试问题

发布于 2024-11-27 06:07:54 字数 4724 浏览 7 评论 0原文

使用 Victor Teixeira 的图像调整大小脚本,并将其用于多个高级主题。它的功能很好,但是当我运行调试器时我收到一些通知,并且我不知道如何解决它。我想知道是否有人可以帮忙? :)

这是通知:

    Notice: Undefined variable: file_path in /nfs/c03/h01/mnt/51370/domains/minimalpixels.com/html/wp-content/themes/paragon/framework/functions/basicFunctions.php on line 129

    Notice: Undefined index: extension in /nfs/c03/h01/mnt/51370/domains/minimalpixels.com/html/wp-content/themes/paragon/framework/functions/basicFunctions.php on line 130

    Notice: Undefined index: dirname in /nfs/c03/h01/mnt/51370/domains/minimalpixels.com/html/wp-content/themes/paragon/framework/functions/basicFunctions.php on line 133

    Notice: Undefined variable: image_src in /nfs/c03/h01/mnt/51370/domains/minimalpixels.com/html/wp-content/themes/paragon/framework/functions/basicFunctions.php on line 139

    Notice: Undefined variable: image_src in /nfs/c03/h01/mnt/51370/domains/minimalpixels.com/html/wp-content/themes/paragon/framework/functions/basicFunctions.php on line 139

    Notice: Undefined variable: image_src in /nfs/c03/h01/mnt/51370/domains/minimalpixels.com/html/wp-content/themes/paragon/framework/functions/basicFunctions.php on line 194

    Notice: Undefined variable: image_src in /nfs/c03/h01/mnt/51370/domains/minimalpixels.com/html/wp-content/themes/paragon/framework/functions/basicFunctions.php on line 195

    Notice: Undefined variable: image_src in /nfs/c03/h01/mnt/51370/domains/minimalpixels.com/html/wp-content/themes/paragon/framework/functions/basicFunctions.php on line 196

这是代码:

 function vt_resize( $attach_id = null, $img_url = null, $width, $height, $crop = false ) {

// this is an attachment, so we have the ID
if ( $attach_id ) {

    $image_src = wp_get_attachment_image_src( $attach_id, 'full' );
    $file_path = get_attached_file( $attach_id );

// this is not an attachment, let's use the image url
} else if ( $img_url ) {

    $file_path = parse_url( $img_url );
    $file_path = $_SERVER['DOCUMENT_ROOT'] . $file_path['path'];

    //$file_path = ltrim( $file_path['path'], '/' );
    //$file_path = rtrim( ABSPATH, '/' ).$file_path['path'];

    $orig_size = getimagesize( $file_path );

    $image_src[0] = $img_url;
    $image_src[1] = $orig_size[0];
    $image_src[2] = $orig_size[1];
}

[129] $file_info = pathinfo( $file_path );
[130] $extension = '.'. $file_info['extension'];

// the image path without the extension
[133]$no_ext_path = $file_info['dirname'].'/'.$file_info['filename'];

$cropped_img_path = $no_ext_path.'-'.$width.'x'.$height.$extension;

// checking if the file size is larger than the target size
// if it is smaller or the same size, stop right here and return
[139]if ( $image_src[1] > $width || $image_src[2] > $height ) {

    // the file is larger, check if the resized version already exists (for $crop = true but will also work for $crop = false if the sizes match)
    if ( file_exists( $cropped_img_path ) ) {

        $cropped_img_url = str_replace( basename( $image_src[0] ), basename( $cropped_img_path ), $image_src[0] );

        $vt_image = array (
            'url' => $cropped_img_url,
            'width' => $width,
            'height' => $height
        );

        return $vt_image;
    }

    // $crop = false
    if ( $crop == false ) {

        // calculate the size proportionaly
        $proportional_size = wp_constrain_dimensions( $image_src[1], $image_src[2], $width, $height );
        $resized_img_path = $no_ext_path.'-'.$proportional_size[0].'x'.$proportional_size[1].$extension;            

        // checking if the file already exists
        if ( file_exists( $resized_img_path ) ) {

            $resized_img_url = str_replace( basename( $image_src[0] ), basename( $resized_img_path ), $image_src[0] );

            $vt_image = array (
                'url' => $resized_img_url,
                'width' => $proportional_size[0],
                'height' => $proportional_size[1]
            );

            return $vt_image;
        }
    }

    // no cache files - let's finally resize it
    $new_img_path = image_resize( $file_path, $width, $height, $crop );
    $new_img_size = getimagesize( $new_img_path );
    $new_img = str_replace( basename( $image_src[0] ), basename( $new_img_path ), $image_src[0] );

    // resized output
    $vt_image = array (
    [194]'url' => $new_img,
    [195]'width' => $new_img_size[0],
    [196]'height' => $new_img_size[1]
    );

    return $vt_image;
}

// default output - without resizing
$vt_image = array (
    'url' => $image_src[0],
    'width' => $image_src[1],
    'height' => $image_src[2]
);

return $vt_image;
 }

提前谢谢您。这个问题让我头疼:)

Working with Victor Teixeira's image resizing script, and have used it on several premium themes. It functions great, but I'm getting some notices when I run the debugger, and I don't know how to resolve it. I wonder if anyone can help? :)

Here are the notices:

    Notice: Undefined variable: file_path in /nfs/c03/h01/mnt/51370/domains/minimalpixels.com/html/wp-content/themes/paragon/framework/functions/basicFunctions.php on line 129

    Notice: Undefined index: extension in /nfs/c03/h01/mnt/51370/domains/minimalpixels.com/html/wp-content/themes/paragon/framework/functions/basicFunctions.php on line 130

    Notice: Undefined index: dirname in /nfs/c03/h01/mnt/51370/domains/minimalpixels.com/html/wp-content/themes/paragon/framework/functions/basicFunctions.php on line 133

    Notice: Undefined variable: image_src in /nfs/c03/h01/mnt/51370/domains/minimalpixels.com/html/wp-content/themes/paragon/framework/functions/basicFunctions.php on line 139

    Notice: Undefined variable: image_src in /nfs/c03/h01/mnt/51370/domains/minimalpixels.com/html/wp-content/themes/paragon/framework/functions/basicFunctions.php on line 139

    Notice: Undefined variable: image_src in /nfs/c03/h01/mnt/51370/domains/minimalpixels.com/html/wp-content/themes/paragon/framework/functions/basicFunctions.php on line 194

    Notice: Undefined variable: image_src in /nfs/c03/h01/mnt/51370/domains/minimalpixels.com/html/wp-content/themes/paragon/framework/functions/basicFunctions.php on line 195

    Notice: Undefined variable: image_src in /nfs/c03/h01/mnt/51370/domains/minimalpixels.com/html/wp-content/themes/paragon/framework/functions/basicFunctions.php on line 196

And here is the code:

 function vt_resize( $attach_id = null, $img_url = null, $width, $height, $crop = false ) {

// this is an attachment, so we have the ID
if ( $attach_id ) {

    $image_src = wp_get_attachment_image_src( $attach_id, 'full' );
    $file_path = get_attached_file( $attach_id );

// this is not an attachment, let's use the image url
} else if ( $img_url ) {

    $file_path = parse_url( $img_url );
    $file_path = $_SERVER['DOCUMENT_ROOT'] . $file_path['path'];

    //$file_path = ltrim( $file_path['path'], '/' );
    //$file_path = rtrim( ABSPATH, '/' ).$file_path['path'];

    $orig_size = getimagesize( $file_path );

    $image_src[0] = $img_url;
    $image_src[1] = $orig_size[0];
    $image_src[2] = $orig_size[1];
}

[129] $file_info = pathinfo( $file_path );
[130] $extension = '.'. $file_info['extension'];

// the image path without the extension
[133]$no_ext_path = $file_info['dirname'].'/'.$file_info['filename'];

$cropped_img_path = $no_ext_path.'-'.$width.'x'.$height.$extension;

// checking if the file size is larger than the target size
// if it is smaller or the same size, stop right here and return
[139]if ( $image_src[1] > $width || $image_src[2] > $height ) {

    // the file is larger, check if the resized version already exists (for $crop = true but will also work for $crop = false if the sizes match)
    if ( file_exists( $cropped_img_path ) ) {

        $cropped_img_url = str_replace( basename( $image_src[0] ), basename( $cropped_img_path ), $image_src[0] );

        $vt_image = array (
            'url' => $cropped_img_url,
            'width' => $width,
            'height' => $height
        );

        return $vt_image;
    }

    // $crop = false
    if ( $crop == false ) {

        // calculate the size proportionaly
        $proportional_size = wp_constrain_dimensions( $image_src[1], $image_src[2], $width, $height );
        $resized_img_path = $no_ext_path.'-'.$proportional_size[0].'x'.$proportional_size[1].$extension;            

        // checking if the file already exists
        if ( file_exists( $resized_img_path ) ) {

            $resized_img_url = str_replace( basename( $image_src[0] ), basename( $resized_img_path ), $image_src[0] );

            $vt_image = array (
                'url' => $resized_img_url,
                'width' => $proportional_size[0],
                'height' => $proportional_size[1]
            );

            return $vt_image;
        }
    }

    // no cache files - let's finally resize it
    $new_img_path = image_resize( $file_path, $width, $height, $crop );
    $new_img_size = getimagesize( $new_img_path );
    $new_img = str_replace( basename( $image_src[0] ), basename( $new_img_path ), $image_src[0] );

    // resized output
    $vt_image = array (
    [194]'url' => $new_img,
    [195]'width' => $new_img_size[0],
    [196]'height' => $new_img_size[1]
    );

    return $vt_image;
}

// default output - without resizing
$vt_image = array (
    'url' => $image_src[0],
    'width' => $image_src[1],
    'height' => $image_src[2]
);

return $vt_image;
 }

Thanks you in advance. This issue is causing me a headache :)

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

メ斷腸人バ 2024-12-04 06:07:54

如果没有行号,要知道到底在哪里遇到了错误有点棘手,但这是我的猜测。第一个错误,也可能是触发其余错误的错误是:

Notice: Undefined variable: file_path in /nfs/c03/h01/mnt/51370/domains/minimalpixels.com/html/wp-content/themes/paragon/framework/functions/basicFunctions.php on line 129

它可能是在这一行中触发的:

$file_info = pathinfo( $file_path );

在我看来,该函数设计得不是很好。从默认的 NULL 值和代码中的检查来看,前两个参数 $attach_id$image_url 是可选的(两者都可以省略)。但代码通过检查 $attach_id$image_url 的存在来定义 $file_path 变量(ifelseif)。因此,如果这些都不存在,则不会定义 $file_path,因此会出现错误通知。

如果函数在没有这些参数之一($image_url$attach_id)的情况下无法完成其工作,它应该在 elseif 之后返回:

if($attach_id) { /* code */ }
elseif($image_url) { /* code */ }
else return False;

Without the line numbers is a bit tricky to know where exactly the errors are being encountered, but here is my guess. The first error, and probably the one that triggers the rest is:

Notice: Undefined variable: file_path in /nfs/c03/h01/mnt/51370/domains/minimalpixels.com/html/wp-content/themes/paragon/framework/functions/basicFunctions.php on line 129

And it is probably triggered in this line:

$file_info = pathinfo( $file_path );

The function doesn't seem to me to be very well designed. The first two arguments, $attach_id and $image_url are optional (both could be omitted), judging from their default NULL values and the checks in the code. But the code is defining the $file_path var by checking the presence of either $attach_id or $image_url (if and elseif). So, if none of these is present $file_path will not be defined, and hence the error notice.

If the function can't do its job without one of these parameters ($image_url or $attach_id), it should return after the elseif:

if($attach_id) { /* code */ }
elseif($image_url) { /* code */ }
else return False;
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文