WordPress 技巧:WordPress 后台也使用七牛云存储
我写的 七牛云存储 WordPress 插件只是使用七牛的镜像功能,而 WordPress 后台的图片浏览其实并没有使用七牛的镜像源。很多人,如果 WordPress 后台也要使用七牛图片,怎么处理,于是我写了下面这段代码:
* 注意,我使用的 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(emptyempty($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低成本实现HTTPS独立域名的MIP站点
栏 目:WordPress
本文标题:WordPress 技巧:WordPress 后台也使用七牛云存储
本文地址:https://zz.feitang.co/CMSjiaocheng/25102.html
您可能感兴趣的文章
- 10-30Win10系统Microsoft store打不开的解决方法
- 10-30Win10系统怎么恢复旧版浏览器?Win10系统恢复旧版浏览器操作方法
- 10-30Win10如何关闭桌面广告?Win10永久关闭桌面弹出广告方法
- 10-24Win10连接蓝牙音量默认100怎么解决?Win10修改蓝牙默认音量的方法
- 10-24Win10预装Office卸载后怎么恢复?预装Office卸载了的找回方法
- 10-24Win10玩奶块闪退怎么办?Win10玩奶块闪退的解决方法
- 10-24Win10如何将自带的输入法锁定为英文?自带输入法锁定为英文的方法
- 10-24Win10平板模式图标不见了怎么办?Win10平板模式图标不见了的解决方法
- 10-24Win10系统gpu缩放黑屏怎么办?Win10系统gpu缩放黑屏的解决方法
- 10-24Win10怎么设置内存超频?Win10设置内存超频的方法


阅读排行
- 1Win10系统Microsoft store打不开的解决方法
- 2Win10系统怎么恢复旧版浏览器?Win10系统恢复旧版浏览器操作方法
- 3Win10如何关闭桌面广告?Win10永久关闭桌面弹出广告方法
- 4Win10连接蓝牙音量默认100怎么解决?Win10修改蓝牙默认音量的方法
- 5Win10预装Office卸载后怎么恢复?预装Office卸载了的找回方法
- 6Win10玩奶块闪退怎么办?Win10玩奶块闪退的解决方法
- 7Win10如何将自带的输入法锁定为英文?自带输入法锁定为英文的方法
- 8Win10平板模式图标不见了怎么办?Win10平板模式图标不见了的解决方法
- 9Win10系统gpu缩放黑屏怎么办?Win10系统gpu缩放黑屏的解决方法
- 10Win10怎么设置内存超频?Win10设置内存超频的方法
推荐教程
- 09-22wordpress如何添加描述
- 10-19纯代码给WordPress网站添加独立下载页面功能
- 10-18wordpress无插件调用随机文章的方法
- 10-18WordPress 技巧:WordPress 后台也使用七牛云存储
- 10-24Win10无法调节声音怎么办?Win10无法调节声音的解决方法
- 10-19WordPress上传图片HTTP错误的解决方法
- 10-18让注册用户可以上传自己的头像的WordPress插件-WP User Avatar v2.
- 10-23Win10蓝牙无法连接设备怎么办?Win10蓝牙无法连接设备的解决方法
- 10-18WordPress禁用自动更新检测的方法
- 10-18#WordPress小技巧#纯代码为自己博客添加支付宝/微信打赏功能





