wordpress七牛云存储cdn优化加速 代码插件双方法
引言:此文由子域名转移而来,因为细微强迫症和放弃子域名而不舍得完全丢弃,所以将会逐步第二次转移文章到主域名上来,二者主题(阿里白秀和D8)均来自大前端,追求完美的同时有一丝小懒,主题就不换了,D8主题用起来挺好。
相信很多站长都有用免费图床的习惯,它可以节省自己空间大小,但小小的图床有时也很苦恼呢~免费图床始终是别人的空间,不是自己的,肯定会有风险问题,有时有的站长会做两手准备,在本地存一份。还有,就算确定了用别人的图床,但还有国内和国外之分,国外的空间大但速度慢,国内的空间小但速度快,是不是很头疼?接下来就开始介绍七牛云存储,他是利用cdn加速来优化网站的css、js、图片等html代码的。关键是七牛云存储拥有大流量大空间,让你用到爽歪歪~
七牛缩略图功能:
1、日志缩略图
- <?php if(wpjam_has_post_thumbnail()){?>
- <div class="entry-thumb">
- <a href="<?php the_permalink() ?>" title="<?php the_title_attribute(); ?>"><?php wpjam_post_thumbnail(array(150,150),$crop=1);?></a>
- </div>
- <?php } ?>
这个函数有两个参数:
$size:设置缩略图的大小,它是一个数组,比如上面例子中就是设置缩略图大小为:宽是 150px,高也是 150px。
$crop:设置是否裁剪缩略图,1为裁剪,如果为0,则只是按照最大边进行缩放,不进行裁剪。
另外这个函数相比 WordPress 默认的 the_post_thumbnail 函数相比还有一个强大的地方是,如果没有设置缩略图,它将自动获取第一张图片作为缩略图。
至于上面代码放到什么地方,我只能说你主题原来the_post_thumbnail()函数是在放到哪里,这个函数就放到哪里。
2、日志列表缩略图
⑴相关日志:
- wpjam_related_posts($number=5, $args);
在需要显示相关日志的地方插入以上模板函数,其中:
$number:相关日志显示数量。
$arg:相关日志显示的参数,其参数默认为。
- array(
- 'class'=>”,
- 'thumb' => true,
- 'size' => 'thumbnail',
- 'crop'=> true,
- 'thumb_class'=>'wp-post-image',
- 'number_per_row'=>5
- );
⑵最新日志:
- wpjam_new_posts($number=5, $post_type="post", $args= array());
$number:最新日志显示数量。
$post_type:最新日志类型。
$arg:最新日志显示的参数,默认和相关日志$arg参数一样。
⑶最热日志:
- wpjam_top_viewd_posts($number=5, $days=0, $args= array());
$number:最热日志显示数量。
$days:从最新多少天内获取最热日志,默认0为所有。
$arg:最新日志显示的参数,默认和相关日志$arg参数一样。
下载地址:
百度网盘下载
千脑网盘下载
因为七牛云存储还是会存在把图片放到别人空间的分享,加上wordpress安装各种插件会影响网站的效率,所以以下分享非插件方法,来优化你的wordpress网站,将以下代码放到function.php中并更改为自己的域名即可。
- define('FocusCDNHost','http:
- define('FocusCDNRemote','http:
- define('FocusCDNIncludes','wp-content,wp-includes');
- define('FocusCDNExcludes','.php|.xml|.html|.po|.mo');
- define('FocusCDNRelative',”);
- function do_cdnrewrite_ob_start() {
- $rewriter = new FocusCDNRewriteWordpress();
- $rewriter->register_as_output_buffer();
- }
- add_action('template_redirect', 'do_cdnrewrite_ob_start');
- class FocusCDNRewriteWordpress extends FocusCDNRewrite{
- function __construct() {
- $excl_tmp = FocusCDNExcludes;
- $excludes = array_map('trim', explode('|', $excl_tmp));
- parent::__construct(
- FocusCDNHost,
- FocusCDNRemote,
- FocusCDNIncludes,
- $excludes,
- !!FocusCDNRelative
- );
- }
- public function register_as_output_buffer() {
- if ($this->blog_url != FocusCDNRemote) {
- ob_start(array(&$this, 'rewrite'));
- }
- }
- }
- class FocusCDNRewrite {
- var $blog_url = null;
- var $cdn_url = null;
- var $include_dirs = null;
- var $excludes = array();
- var $rootrelative = false;
- function __construct($blog_url, $cdn_url, $include_dirs, array $excludes, $root_relative) {
- $this->blog_url = $blog_url;
- $this->cdn_url = $cdn_url;
- $this->include_dirs = $include_dirs;
- $this->excludes = $excludes;
- $this->rootrelative = $root_relative;
- }
- protected function exclude_single(&$match) {
- foreach ($this->excludes as $badword) {
- if (stristr($match, $badword) != false) {
- return true;
- }
- }
- return false;
- }
- protected function rewrite_single(&$match) {
- if ($this->exclude_single($match[0])) {
- return $match[0];
- } else {
- if (!$this->rootrelative || strstr($match[0], $this->blog_url)) {
- return str_replace($this->blog_url, $this->cdn_url, $match[0]);
- } else {
- return $this->cdn_url . $match[0];
- }
- }
- }
- protected function include_dirs_to_pattern() {
- $input = explode(',', $this->include_dirs);
- if ($this->include_dirs == ” || count($input) < 1) {
- return 'wp\-content|wp\-includes';
- } else {
- return implode('|', array_map('quotemeta', array_map('trim', $input)));
- }
- }
- public function rewrite(&$content) {
- $dirs = $this->include_dirs_to_pattern();
- $regex = '#(?<=[(\"\'])';
- $regex .= $this->rootrelative ? ('(?:'.quotemeta($this->blog_url).')?') : quotemeta($this->blog_url);
- $regex .= '/(?:((?:'.$dirs.')[^\"\')]+)|([^/\"\']+\.[^/\"\')]+))(?=[\"\')])#';
- return preg_replace_callback($regex, array(&$this, 'rewrite_single'), $content);
- }
- }