我需要一种方法来限制作者上传特定尺寸以下的图像。

说我只想允许上传至少400px x 400px的图像。如果图像尺寸较小,则作者应收到一个错误通知,即图像太小。

是否有插件或代码可以完成此任务?

#1 楼

将此代码添加到主题的functions.php文件中,它将限制最小图像尺寸

add_filter('wp_handle_upload_prefilter','tc_handle_upload_prefilter');
function tc_handle_upload_prefilter($file)
{

    $img=getimagesize($file['tmp_name']);
    $minimum = array('width' => '640', 'height' => '480');
    $width= $img[0];
    $height =$img[1];

    if ($width < $minimum['width'] )
        return array("error"=>"Image dimensions are too small. Minimum width is {$minimum['width']}px. Uploaded image width is $width px");

    elseif ($height <  $minimum['height'])
        return array("error"=>"Image dimensions are too small. Minimum height is {$minimum['height']}px. Uploaded image height is $height px");
    else
        return $file; 
}


然后只需更改所需最小尺寸的数字即可(在我的示例中是640和480)

评论


谢谢!如果我们包含帖子缩略图,有什么方法可以不运行此功能吗?

– Arthur Dos Santos Dias
2012年1月24日上午11:34

每次上传文件时都会运行一次,在将文件分类或将其分配为缩略图之前,该步骤仍然只是文件。您可以基于文件名添加条件(带有您选择的前缀/后缀),并以此命名您的缩略图为文件,如果文件名满足该条件,则不要运行该功能。

–真·巴拉赞尼
2012年2月21日在23:38

第14行引用需要将“宽度”替换为“高度”,但是否则这正是我所需要的。

–user15580
2012年4月26日在17:36

与Gutenberg完美搭配!

–法律
20年4月1日在14:00

#2 楼

我不希望重新格式化同事的代码。
此外,仅对非管理员用户进行检查。 >


评论


喜欢这个,它就像一种魅力。但是,有一个问题:如果我只想在某些帖子类型上应用此过滤器,则用户仍然可以从媒体库中选择一张图片,该图片是以另一种不符合这些要求的帖子类型(没有大小要求)上传的。

–cfx
14年5月16日在1:32

只有在我们上传特色图片时,才可以应用此方法吗?

–死锁
16-10-14在9:11