前言

之前叶子有做很多,包括本站写的那篇基础优化,在进行基础优化完毕过后呢,还另外再去优化了下WP,结果就导致了不少的BUG出现。但本文所指出的BUG都非《WordPress基础优化》中的所出现的BUG。目前Wordpress基础优化的内容都暂未发现BUG。

正文

叶子在进行Wordpress基础优化过后还觉得不够满足,故又去优化WP,谁知导致了新的BUG出现。此次本文将会写出注意事项(很大原因都和之前做的基础优化有关,因为基础优化是做了静态处理,导致了本文后续优化出现问题。),大家特别要注意特别是全局PJAX的主题,不要乱优化。很容易出问题,就像本站一样,采用了@Tokin出品的DesNote-Pro主题,其采用了全局PJAX且用的Zepto.js作为JavaScript库,本身主题的优化就已经是极佳。但是由于本身对Zepto.js非常不熟悉(其实还有我根本不懂JS啦),所以针对的优化都忘记考虑到Zepto.js的存在了。特别是用了我爱水煮鱼大大写的针对JS优化的代码。如下

add_filter( 'clean_url', 'wpjam_defer_script',11,1);
function wpjam_defer_script( $url ){
    if(strpos($url, '.js') === false){ 
        return $url;
    }

    return "$url' defer='defer";
};

其作用主要是使用 defer 延迟加载 JavaScript 程序,达到加快页面渲染的效果。
但是使用了此代码后,如果你有在代码高亮等插件,会发现全部失效(其引用的JS失效),从而导致无法正常工作。我当时有在考虑会不会是zepto.js的原因,但是由于没有时间去使用JQ来进行测试,故只好作罢。最后只好删除了此代码,故代码高亮插件开始正常工作(不过由于主题是全局PJAX,所以进入到有使用到代码高亮的文章时,需要手动F5刷新,方可正常显示)
解决完上面的bug过后,我本以为已经没有BUG了,但是在有人发布广告评论时,我删除评论到回收站(这时无异常),再准备从回收站进行清空时,BUG出现了。点击清空,整个页面就变成了白窗,无法显示。因为我记得在做优化之前,都无此问题的。所以赶紧去找找自己新增的代码。果然,又是通过在我爱水煮鱼大大上面弄的代码导致出的问题,代码如下。

if (strlen($_SERVER['REQUEST_URI']) > 255 ||
	strpos($_SERVER['REQUEST_URI'], "eval(") ||
	strpos($_SERVER['REQUEST_URI'], "base64")) {
		@header("HTTP/1.1 414 Request-URI Too Long");
		@header("Status: 414 Request-URI Too Long");
		@header("Connection: Close");
		@exit;
} 

其作用为防止遭受恶意 URL 请求,所以我当时就猜测是这串代码进行了误判,对于我所请求的操作,识别成了恶意URL请求。所以赶紧删除掉,免得看的心情烦躁。

结语

目前只发现了上面两处BUG,幸运的是都还好一一解决了。看了之前那篇优化文章的同学不用担心,那篇文章暂时没有发现什么BUG,可以放心学习。最后,在这里。真诚的给大家说声,千万别乱优化。