WordPress 限制上傳圖片的最小寬度和高度

作為一個開放註冊的WordPress站點,為瞭保證文章的質量,你可能需要限制其他用戶上傳圖片的最小寬度和高度。實現的方法也很簡單,將下面的代碼添加到當前主題的 functions.php 即可:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
/**
 * WordPress 限制上傳圖片的最小寬度和高度
 * https://www.wpdaxue.com/wordpress-minimum-require-for-image-size.html
 */
add_action( 'admin_init', 'block_authors_from_uploading_small_images' );
 
function block_authors_from_uploading_small_images(){
	//除管理員以外,其他用戶都限制
	if( !current_user_can( 'manage_options') )
		add_filter( 'wp_handle_upload_prefilter', 'block_small_images_upload' ); 
}
 
function block_small_images_upload( $file ){
	// 檢測文件的類型是否是圖片
	$mimes = array( 'image/jpeg', 'image/png', 'image/gif' );
	// 如果不是圖片,直接返回文件
	if( !in_array( $file['type'], $mimes ) )
		return $file;
 
	$img = getimagesize( $file['tmp_name'] );
	// 設置最小寬度和高度
	$minimum = array( 'width' => 640, 'height' => 480 );
 
	if ( $img[0] < $minimum['width'] )
		$file['error'] = 
			'圖片太小瞭,最小寬度是 ' 
			. $minimum['width'] 
			. 'px,當前上傳的圖片寬度是 ' 
			. $img[0] . 'px';
 
	elseif ( $img[1] < $minimum['height'] )
		$file['error'] = 
			'圖片太小瞭,最小高度是 ' 
			. $minimum['height'] 
			. 'px,當前上傳的圖片高度是 ' 
			. $img[1] . 'px';
 
	return $file;
}

/**
* WordPress 限制上傳圖片的最小寬度和高度
* https://www.wpdaxue.com/wordpress-minimum-require-for-image-size.html
*/
add_action( ‘admin_init’, ‘block_authors_from_uploading_small_images’ ); function block_authors_from_uploading_small_images(){
//除管理員以外,其他用戶都限制
if( !current_user_can( ‘manage_options’) )
add_filter( ‘wp_handle_upload_prefilter’, ‘block_small_images_upload’ );
} function block_small_images_upload( $file ){
// 檢測文件的類型是否是圖片
$mimes = array( ‘image/jpeg’, ‘image/png’, ‘image/gif’ );
// 如果不是圖片,直接返回文件
if( !in_array( $file[‘type’], $mimes ) )
return $file; $img = getimagesize( $file[‘tmp_name’] );
// 設置最小寬度和高度
$minimum = array( ‘width’ => 640, ‘height’ => 480 ); if ( $img[0] < $minimum[‘width’] )
$file[‘error’] =
‘圖片太小瞭,最小寬度是 ‘
. $minimum[‘width’]
. ‘px,當前上傳的圖片寬度是 ‘
. $img[0] . ‘px’; elseif ( $img[1] < $minimum[‘height’] )
$file[‘error’] =
‘圖片太小瞭,最小高度是 ‘
. $minimum[‘height’]
. ‘px,當前上傳的圖片高度是 ‘
. $img[1] . ‘px’; return $file;
}

該代碼會對非管理員用戶進行限制,如果上傳的圖片的最小寬度或高度達不到要求,就會限制上傳和進行提示。效果類似於下圖:

0572-wpdaxue_com

參考資料:http://wordpress.stackexchange.com/questions/28359/

發佈留言