WordPress 后台图片使用七牛云存储CDN

使用的 PHP 闭包函数来处理,所以要新点的版本的 PHP 才行,具体哪个版本支持 PHP 闭包函数,自行查阅一下。

// 因为使用七牛来缩图,WordPress 默认的缩图就没有必要了。
add_filter('pre_option_thumbnail_size_w',	'__return_zero' );
add_filter('pre_option_thumbnail_size_h',	'__return_zero' );
add_filter('pre_option_medium_size_w',		'__return_zero' );
add_filter('pre_option_medium_size_h',		'__return_zero' );
add_filter('pre_option_large_size_w',		'__return_zero' );
add_filter('pre_option_large_size_h',		'__return_zero' );

// 因为使用七牛来缩图,也不用生成各种尺寸的数组
add_filter('intermediate_image_sizes_advanced', function($sizes){
	if(isset($sizes['full'])){
		return array('full'=>$sizes['full']);
	}else{
		return array();
	}
});

// 因为使用七牛来缩图,后台图片选择只剩下原图
add_filter('image_size_names_choose', function($sizes){
	if(isset($sizes['full'])){
		return array('full'=>$sizes['full']);
	}else{
		return array();
	}
});

add_filter('upload_dir', function($uploads){
	$uploads['url']		= wpjam_get_thumbnail($uploads['url']);
	$uploads['baseurl']	= wpjam_get_thumbnail($uploads['baseurl']);

	return $uploads;
});

add_filter('wp_calculate_image_srcset_meta', '__return_empty_array');

// 因为使用七牛来缩图,根据各种尺寸,使用七牛的缩图API进行缩图
add_filter('wp_get_attachment_image_src', function($image, $attachment_id, $size, $icon){
	return  wpjam_get_attachment_image_src($attachment_id, $size);
}, 10 ,4);


function wpjam_get_attachment_image_src($attachment_id, $size='full'){

	$img_url 	= wp_get_attachment_url($attachment_id);

	if(empty($img_url)){
		return array('', 0, 0, false);
	}

	$image_meta = wp_get_attachment_metadata( $attachment_id );

	$crop	= 0;

	if($size == 'thumbnail'){
		$crop	= 1;
		$width	= $height = 150;
	}elseif($size == 'medium'){
		$width	= $height = 300;
	}elseif($size == 'medium_large'){
		$width	= 768;
		$height = 0;
	}elseif($size == 'large'){
		$width	= $height = 1024;
	}elseif(is_array($size)){
		$width	= $size[0];
		$height = $size[1];
	}

	if(isset($width) && isset($height)){
		$mode		= $crop?'1':'2';
		$img_url	= wpjam_get_thumbnail($img_url, compact('width', 'height', 'mode'));
		$dims		= image_resize_dimensions($image_meta['width'], $image_meta['height'], $width, $height, $crop);
		
		return array( $img_url, $dims[4], $dims[5],false);
	}else{
		$img_url	= wpjam_get_thumbnail($img_url);

		$image_meta_width	= ($image_meta['width'])??0;
		$image_meta_height	= ($image_meta['height'])??0;

		return array($img_url, $image_meta_width, $image_meta_height, false);
	}
}

// 媒体列表页面,也是使用七牛的缩图API进行缩图
add_filter('wp_prepare_attachment_for_js', function($response, $attachment, $meta){

	if(isset($response['sizes'])){
		$orientation	= $response['sizes']['full']['orientation'];

		foreach (array('thumbnail', 'medium', 'medium_large', 'large') as $s) {
			$image_src = wpjam_get_attachment_image_src($attachment->ID, $s);

			$response['sizes'][$s]	= array(
				'url'			=> $image_src[0],
				'width'			=> $image_src[1],
				'height'		=> $image_src[2],
				'orientation'	=> $orientation
			);
		}
	}

	return $response;
}, 10, 3);

想了解更多关于WordPress 后台图片使用七牛云存储CDN的内容,请扫微信
或微信搜索jiemingpan

本文链接:http://www.soufuzi.com/jianzhan/3072

(0)
上一篇 2025-04-21 15:48:16
下一篇 2025-04-21 15:48:16

相关推荐

  • 小红书店铺类目可以修改吗?

    小红书店铺类目是可以修改的。 但修改过程需要遵循一定的步骤和规则。以下是修改小红书店铺类目的详细步骤和注意事项: 1.商家需要先登录小红书的商家后台。 2.在商家后台中,找到并点击“店铺管理”选项。 3.在“店铺管理”页面里,选择“品类管理”功能。 4.在“品类管理”页面,商家可以看到当前店铺的类目设置,并选择“更换类别”功能。 5.选择新的类目后,点击“应用”或“保存”等按钮进

    2024-09-10 08:04:08
  • 厦门小猪社区

    厦门小猪网成立于2005年,是厦门人的网络家园.为300多万人提供厦门交友、育儿美食、招聘租房、厦门婚纱摄影等生活服务,厦门交友征婚、厦门婚纱摄影就上小猪厦门论坛。厦门小猪网XMpig.com成立于2005年9月,是厦门最大的城市生活社区网站,为300多万厦门人提供生活信息、消费指导、情感分享等实用服务,所属公司是一家以互动营销为主要业务的新媒体公司,致力于让生活更精彩、让城市更温暖。截止2014年2月,厦门小猪网注册用户突破49万人,论坛每日发贴量上万,

    2024-07-26 07:38:12