• 注册
  • WordPress建站 WordPress建站 关注:0 内容:23

    xiu主题启用七牛cdn缓存后无法评论解决办法

  • 查看作者
  • 打赏作者
  • Lv.1
    青铜会员 VIP 1
    靓号:123
    官方

    之前知鹅分享了一个启用七牛后知更鸟主题无法评论解决办法,这不又换回了我喜欢的 xiu 主题么,发现还是有这个问题,因为模版结构的问题,按那个办法无法解决,经过摸索,只好通过代码方式然后辅以知鹅我聪明的大脑,就实现了骑牛的 cdn 缓存啦:有需要的朋友可以借鉴下:

    //水煮鱼的七牛 CDN 插件代码版
    define('FocusCDNHost','https://dedewp.com'); //wordpress 网站网址
    define('FocusCDNRemote','http://cdndedewp.qiniudn.com'); //cdn 域名
    define('FocusCDNIncludes','wp-content/uploads'); //设置加速目录
    define('FocusCDNExcludes','.php|.xml|.html|.po|.mo|.js');  //设置文件白名单
    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);
    }
    } 

    应该可以把插件的目录也一并加速的,剩下的你们就自己鼓捣去吧!哈哈。

        

    请登录之后再进行评论

    登录
  • 偏好设置
  • 做任务
  • 实时动态
  • 帖子间隔 侧栏位置: