Dragon
  • 注册、登陆后即可全站无广告畅快浏览本博客了!
  • 本博客已开启支持百度AI智能内容自动审核机制!
明月登楼明月登楼  2017-02-13 15:10 明月登楼的博客 隐藏边栏 |   62 条评论  8,184 
文章评分 0 次,平均分 0.0
导语: 今天分享的代码都是需要放在主题 function.php 里的,如果担心主题升级或者更换后失效和丢失上述代码,大家可以采用本博【如何方便的在更新主题时保留 functions.php 里的自定义】一文里的方法,真的很不错的,我一直都是这样用的。

年前明月就已经将我手里的三个博客站都开启了七牛云,并在年后启用本地缓存神器插件 WP-Rocket ,至此我的 CDN 加速方案: WordPress 本地缓存+七牛云静态存储+七牛云融合 CDN (只针对静态存储空间)算是告一段落了。

本着“生命不止、折腾不息”的宗旨,又利用七牛云存储缓存了 Gravatar 头像,解决了 Gravatar 被“墙”后总是拖慢 WordPress 的问题。

为了更有效率的使用七牛云,一口气注册并实名认证了三个七牛账户,根据不同博客站和需求来分别使用,并且都绑定了自定义域名,现在无论是头像、文章图片、缩略图调用都已部署成自由的二级域名,感觉逼格提升了不少,嘿嘿!

今天就分享几个最近几天折腾而来的针对七牛云的实用性蛮高的代码,以便有需要的站长们使用:

1、 WordPress 首页、文章列表缩略图调用七牛图片。

其实这段代码利用缓存插件 WP Super Cache 和 W3 Total Cache 里面的 CDN 支持就可以实现的,但是这两个插件严重拖慢了 WordPress 后台载入速度,明月也是不得不放弃,还好有 WP-Rocket 这个神器来替换,但是 WP-Rocket 对七牛云的支持就简单的多了,无法实现缩略图调用七牛图片,所以才找到了这段代码,昨晚我的博客已经率先使用上了,目前本博已经通过下面的代码实现了 WordPress 首页、文章列表缩略图调用七牛图片,再次减轻了主机负载。

  1. function QiNiuCDN(){
  2.     function Rewrite_URI($html){
  3.         /* 前面是需要用到七牛的域名也就是博客网站的域名,后面是需要加速的静态文件类型,使用分隔符 | 隔开即可 */
  4.         $pattern = '/http:\/\/(blog\.|)ymanz\.com\/wp-content\/uploads([^"\']*?)\.(js|css|jpg|gif|png|jpeg|bmp|webp|svg|tiff|webm|mp3|mp4|3gp|mov|ico)/i';
  5.         /* 七牛 CDN 空间地址,请自行替换成实际空间地址或者空间绑定的自定义域名 */ 
  6.         $replacement = 'http://空间地址或者空间绑定的自定义域名/wp-content/uploads$2.$3';
  7.         $html = preg_replace($pattern, $replacement, $html);
  8.         return $html;
  9.     }
  10.     if(!is_admin()){
  11.         ob_start("Rewrite_URI");
  12.     }
  13. }
  14. add_action('init', 'QiNiuCDN');

上述代码的实现可能会消耗一定的七牛云空间以及融合 CDN 流量,如果你的博客网站流量已经多到收费了,那就不建议你采用了,免费情况下还是可以玩玩的,提升装逼逼格!

2、文章内调用七牛图片默认尺寸属性。

这段代码比较适合高清图片多的场景,一篇文章内高清、高分辨率图片多的时候会严重影响网页载入效率的,可以借助下面的代码设定一个默认的小尺寸的图片来加快网页载入时间,再配合 WordPress 的图片暗箱功能(就是点击图片看原图)方便用户快速查看原图片(这里需要在编辑文章插入图片时将图片链接到“媒体(图片)文件”的)来变相的实现速度优化,还可以减小一些无谓的七牛云流量消耗。目前,我的博客和主站【玉满斋』都在使用这段代码,效果很明显。

  1. //设置调用七牛图片默认尺寸属性
  2. add_filter('the_content', 'removeimg_size');
  3. function removeimg_size($content) {
  4.     global $post;
  5.     //去掉 srcset 属性
  6.     $content = preg_replace("/srcset=('|\")(.*?)('|\")/i"''$content);
  7.     //设置图片默认尺寸,下面一行的 400 即为图片宽高,可以根据情况自己调整
  8.     $content = preg_replace('/<img(.*?)width="(.*?)" height="(.*?)"(.*?)>/i', '<img$1width="400" height="400"$4>', $content);
  9.     return $content;
  10. }

使用这段代码,大家不用担心图片被裁剪的有缺失,因为默认都是居中裁剪的,所以几乎没有影响的,并且我还发现在手机移动端载入速度也提升不少,图片小了嘛。

3、替换 WordPress 头像地址为七牛云空间缓存 Gravatar 的头像地址。

  1. //缓存 Gravatar 头像到七牛云存储,WordPress 4.0+ 适用
  2. function qiniu_avatar($avatar) {
  3.   $avatar = preg_replace('/.*\/avatar\/(.*)\?s=([\d]+)&.*.srcset=.*/','<img src="http://你的七牛域名或者绑定的自定义域名/avatar/$1-$2" class="avatar avatar-$2" height="$2" width="$2">',$avatar);
  4.   return $avatar;
  5. }
  6. add_filter( 'get_avatar', 'qiniu_avatar', 10, 3 );

这个其实前天的文章【利用七牛云存储缓存 Gravatar 头像加速 WordPress』里已经分享过了,完全是凑数的,呵呵,我就不多说了,不明白的可以参考前天的文章。

4、评论审核通过后邮件通知评论者

  1. //评论通过审核后邮件通知评论者
  2. add_action('comment_unapproved_to_approved', 'ludou_comment_approved');
  3. function ludou_comment_approved($comment) {
  4.   if(is_email($comment->comment_author_email)) {
  5.     $post_link = get_permalink($comment->comment_post_ID);
  6.     // 邮件标题,可自行更改
  7.     $title = '您在 [明月登楼博客] 的评论已通过审核';
  8.     // 邮件内容,按需更改。如果不懂改,可以给我留言
  9.     $body = '您在明月登楼博客《<a href="'.$post_link.'">'.get_the_title($comment->comment_post_ID).'</a>》发表的评论:<br />
  10.             '.$comment->comment_content.'<br /><br />
  11.             已通过管理员审核并显示。<br />
  12.             您可在此查看您的评论:<a href="'.get_comment_link( $comment->comment_ID ).'">前往查看</a>';
  13.     @wp_mail($comment->comment_author_email, $title$body"Content-Type: text/html; charset=UTF-8");
  14.   }
  15. }

上述代码大家记得要修改一下提示内容为自己博客的哦,明月个人感觉这是一个很贴心的评论邮件提醒,需要审核的评论还是不少的,审核后通知评论者,其实就是在拉回头客。

最后分享一个鱼哥(我爱水煮鱼)的“防止 WordPress 遭受恶意 URL 请求”的代码:

  1. //防止 WordPress 遭受恶意 URL 请求。From:http://blog.wpjam.com/m/block-bad-queries/  
  2. if(strlen($_SERVER['REQUEST_URI']) > 384 ||  
  3.     strpos($_SERVER['REQUEST_URI'], "eval(") ||  
  4.     strpos($_SERVER['REQUEST_URI'], "base64")) {  
  5.         @header("HTTP/1.1 414 Request-URI Too Long");  
  6.         @header("Status: 414 Request-URI Too Long");  
  7.         @header("Connection: Close");  
  8.         @exit;  
  9. }  

今天分享的代码都是需要放在主题 function.php 里的,如果担心主题升级或者更换后失效和丢失上述代码,大家可以采用本博【如何方便的在更新主题时保留 functions.php 里的自定义』一文里的方法,真的很不错的,我一直都是这样用的。

今天分享的代码都是网络收集而来,分别来自【张戈博客』、【Boke112 导航』、【我爱水煮鱼』,特此声明,同时也感谢三位大咖的无私奉献。

「点点赞赏,手留余香」

还没有人赞赏,快来当第一个赞赏的人吧!

明月登楼给明月登楼打赏
×
予人玫瑰,手有余香
  • 2
  • 5
  • 10
  • 20
  • 50
2
支付

本文来自投稿,不代表明月登楼的博客立场,版权归原作者所有,欢迎分享本文,转载请保留出处!

明月登楼
明月登楼 关注:8    粉丝:0 最后编辑于:2019-07-06
玉满斋(www.ymanz.com)网站创始人,☑玉器爱好者 ☑微博控 ☑手机控 ☑历史控 ☑宅 ☑网络控 ☑Wordpress控

发表评论

表情 链接 私密 格式 签到
  1. 小高
    小高 来自天朝的朋友 火狐浏览器 56.0 Windows 10

    第一段代码修改后,放在 functions 里面后,首页缩略图变空白了。
    想问下博主
    是要配合裁剪插件使用吗?
    还是我的首页文章列表缩略图没同步到七牛所以不显示?
    弄了好久都没弄好,求教
    http://wx3.sinaimg.cn/mw1024/006XaFvggy1fkk1whouu4j30kw06cjrx.jpg

    16楼 2017-10-16 14:04
    0 0 回复
  2. 木公
    木公 来自天朝的朋友 谷歌浏览器 60.0.3112.78 Windows 8.1

    这么牛掰的评论框 :mrgreen: :mrgreen: :mrgreen:

    15楼 2017-08-18 17:48
    0 0 回复
  3. 小萝博客
    小萝博客 评论达人 LV.3 来自天朝的朋友 谷歌浏览器 55.0.2883.87 Windows 7

    感觉有点卡,打评论

    14楼 2017-02-15 22:51
    0 0 回复
  4. 灰狼
    灰狼 来自天朝的朋友 谷歌浏览器 50.0.2661.102 Windows 10

    头像不建议使用七牛,一旦别人更新头像,基本上是无法自动更新的。

    13楼 2017-02-14 17:32
    0 0 回复
  5. 杭州SEO优化
    杭州SEO优化 评论达人 LV.2 来自天朝的朋友 谷歌浏览器 45.0.2454.101 Windows 7

    不错 比较牛逼

    12楼 2017-02-14 10:47
    0 0 回复
  6. 摩天之星

    七牛云没咋用过,一般使用阿里云比较多

    11楼 2017-02-14 10:41
    0 0 回复
扫一扫二维码分享