因为原主题在某些特殊IE内核浏览器的侧边栏会出问题,不用侧边栏又不爽,所以又换了一个主题。加上学习一下 WordPress 子主题的制作,在每天挤出短短时间,使用 WordPress 子主题方式做出了这个主题。
部分修改:
- 增加版权信息提示
- 修改底部
- 完善 Google 结构化数据
- 添加“无插件”PageNavi
- 汉化部分
- 合并 JS、CSS 文件
而且,这个主题支持 Retina 显示屏,不错,但是不好的地方是需要加载的 JS 太多了,我调了半天,勉强不需要那么多了。
因为原主题在某些特殊IE内核浏览器的侧边栏会出问题,不用侧边栏又不爽,所以又换了一个主题。加上学习一下 WordPress 子主题的制作,在每天挤出短短时间,使用 WordPress 子主题方式做出了这个主题。
部分修改:
而且,这个主题支持 Retina 显示屏,不错,但是不好的地方是需要加载的 JS 太多了,我调了半天,勉强不需要那么多了。
如何快速有效的设置(锁定)首页,一直电脑技术员头疼的一件事。虽然这算不上一件难事,但每次都要操作固定的步骤,甚至一台电脑有几个浏览器的时候,还要操作多次。而且有时还会忘记设置首页,也无非不是一件麻烦事。特别是如何在 Windows PE 环境下快速设置(锁定)目标系统所有浏览器首页,并不是简单几步操作就可以完成的事情。因此,特开发此软件协助各位快捷、批量的设置浏览器首页。
软件相对于 2 代版本,代码完全重写,提高执行效率,大大降低首页设置失败几率,修复 2 代严重 BUG,增加了“安全锁定”、“加入收藏”等功能,乃首页设置(锁定)之利器也!
程序名称:Super StartPage 3 (SP3)
程序版本:3.0.1.233
支持系统:适用于 x86 / x64 的 Windows XP / Windows Vista / Windows 7 / Windows 8 操作系统以及同期Windows PE系统
支持语言:简体中文 (Simplified Chinese)
下载地址:百度网盘
文件效验:
压缩包:
文件: SuperStartPage3_3.0.1.233.zip
大小: 1638583 字节
修改时间: 2013年9月1日, 19:41:48
MD5: 5658D101F0DEC353CA232B2204B55BA8
SHA1: 54742E850D3039B4AC3CD4BCAF379EB4BF46E49F
CRC32: 0872075C
主程序:
文件: SuperStartPage3.exe
大小: 2512862 字节
文件版本: 3.0.1.233
修改时间: 2013年9月1日, 19:41:10
MD5: 64B4152AA9FED62941A8F9E3F1559D2E
SHA1: 45BD42220C2A991619AC12C554F023C7C08C7CE5
CRC32: 656B96D6
(任何未经作者同意对程序进行的修改操作,包含但不限于破解、反编、二次开发等,需承担法律责任)
思量再三,换成了 ProwerV6 这个主题,把用了许多年的 iGoogler 主题换掉了。为什么要换呢?因为——响应式设计。这可以省掉插件。但是,问题就来了——不支持IE6,这个真的没办法,算了吧。
旧主题的各种优化教程,我还是会发,算是为 iGoogler 主题做的最后一点贡献。
找不到“友情链接”的博主,请留意底部。
明天就要开始上课了,由于这个学期我初三了,所以必定会没有太多的时间管理这个博客,所以也许会停止更新很长一段时间,各种事情的处理速度,也会变得长长长长~~~
请见谅!
上篇文章《我是怎么对我的网站进行优化的(四):Speed》提到要写这么一个教程,那我就写一写吧!其实 WP File Cache 并“人如其名”,而是对 WordPress Object Cache 的优化。
The plugin implements object level persistent caching and can be used instead of the built in WordPress WP_Object_Cache. Unlike WP Super Cache, Hyper Cache and other plugins, WP File Cache does not cache the entire page; instead, it caches the data WordPress explicitly asks it to cache (using wp_cache_xxx() API functions). Although this means that the performance will be less than with, say, WP Super Cache, all your pages remain dynamic. WP File Cache won’t help you much if the plugins or theme you are using do not use WordPress Cache API. This is by design, since the plugin tries to play nice. However, for most WordPress installations this will not be critical.
简单来说,这个插件就是将 WordPress Object Cache 保存到文件(所以需要配合 WordPress Object Cache 使用,要不没那么明显的效果),这可是我们这些无法上内存缓存的小家伙的福音。明显的,这个插件要主机的硬盘 I/O 比较好才行。
不过,那些财大气粗,可以上内存缓存的家伙,就不要去使用了,用好你的内存缓存吧!无论怎么样,内存缓存总比文件缓存的效率高。
而且,这个插件不同于 WP Super Cache、Hyper Cache 等插件,所以,你安装完这个后,如果没有我那种特殊需求,你还可以在安装其它的缓存插件,会达到更明显的加速效果。
怎么安装就不用我教了吧?后台搜索“WP File Cache”,安装即可。借用“大猫”的一句话:神马FTP时代,全部都过去了。
然后,勾上“Enable WP File Cache”和“Save cached data across sessions”,轻点下“Save Changes“,不必退出登录,如果你的主题优化的足够好的话,立刻就可以体验到飞一般的效果了。
So Easy!勾上“Do not use cache in the Admin Panel”,问题应该自解了。如果还不能解决,只能卸载插件了,说明你不适合用这个插件。
很多同学都说 WordPress 很慢,但是作为全世界最常用的建站和博客系统 WordPress 来说,我相信在性能设计上肯定不会有太大的问题,WordPress 开发团队也肯定也考虑到这个问题。其实我觉得,WordPress 并不慢,只是看你会不会用,就像 Windows、Android,有些人觉得不错,有些人觉得慢、差劲,其实也许是你会不会使用的问题。
主机自身的速度的确是影响网站速度最重要的一点,但除此之外,还受到其他很多方面的影响,比如安装太多效率低下的插件,使用代码质量低下的主题,没有正确使用 WordPress 的缓存等。
今天我就结合实例(本博客)来和大家分析一下这个问题。
首先说下,本博客托管在一般的虚拟主机上,并没有托管在 VPS、有 Memcached 等各种各样内存缓存的虚拟主机上,而且,本博客也没有用任何静态化缓存插件,因为我给博客配置了“手机版”,用这些插件特别容易出问题。
那么怎么去优化自身呢?
这是首要的一点。有句流行的话说过“能用代码解决的决不用插件”,但实际情况是大部分的人往往都没足够的代码知识,更不可能做到每个插件的代码化。所以,更好的选择是能不用的插件就不用。因为大部分的插件都会进行数据查询与生成,这在页面生成过程中将耗费时间。需要注意的是,尽量不要使用效率极低的插件,比如某些 SEO 插件,这完全是可以用代码实现的,对于某些插件仅有一个文件的,完全可以尝试自己简单修改、阅读,加入主题的 Functions.php 中,我相信对大部分喜欢折腾 WordPress 的人来说,没什么难度。
并且,插件大多都会在页面中载入各种各样的 CSS 和 JS,而网站优化中有2条内容是:
而且,对于不用插件的处理,我建议“删除”而不是简简单单的“禁用”。因为 WordPress 在每一次的页面访问时,都会判断插件的使用情况。让 WordPress 做更少的判断就等于做更少的数据查询。
如今 WordPress 主题是越来越绚丽,但请你们在使用这些主题时,考虑下主机能否带得动。而且,明显那些国外的主题(默认主题除外)不太适合我们,因为一些国外的主题往往使用了过多的 JS 和 CSS,人家带宽好,不怕这些,但我们 4M、6M 甚至有些地方还在用着 1M、2M 的宽带的人使用起来可就受苦了。当然,如果你会手动修改主题,使其能适应我们这种带宽的话,我没意见。
使用的主题尽量满足以下要求:
使用 GZip 压缩至少可以减少网页体积20%(静态资源除外)。通常大部分的优秀主机都能够支持服务端的 GZip 并且可以自动压缩。如果服务器没有自动进行页面压缩,就需要自行开启。如何开启,我就不多说了,这个请自己百度,寻找适合的方法。
网站的静态文件一般有两种:第一种是网站的 CSS,JS 和一些主题的常用背景图片和按钮文件,这些图片如果网站不进行改版或者其他改动,基本上是不会修改的,第二种是每天更新的网站内容中上传的图片或者附件,这些图片文件也是基本不会改动的。
解决好静态文件存储和加速,网站性能就首先能得到基本的保证了,WordPress 构建的网站和博客也是一样的。对于这些静态文件来说,最好的解决方案永远是使用 CDN 网络进行加速,这样服务器的压力将大大降低,因为访问页面只有当前页面是在自己服务器上,其他所有图片 JS CSS 都是从 CDN 获取的。
从使用便捷性和性价比角度来说,个人推荐七牛云存储。
这个要跟据你的实际情况使用,比如本博客使用的是 WP File Cache + DB Cache Reloaded Fix,考虑到 WP File Cache,网上还没有教程,有时间我再写一个吧!
要彻底明白和搞懂 WordPress 性能优化,首先要理解 WordPress 缓存机制,WordPress 默认是一种叫做 WordPress Object Cache 的对象缓存机制,它把需要缓存的内容按照 Key-Value 这样的模式进行缓存(和 No-SQL 的 key-value 的有点类似),当然它还支持按照 Group 来划分和避免缓存的内容冲突。
所以最基础的 WordPress 缓存就是,把 WordPress 产生的 Key-Value 缓存起来。比如存到文件(文件缓存),或者存到内存(内存缓存)。
由此得知,WordPress 主题和插件尽量使用模板函数,因为 WordPress 模板函数如果部分已经做好了 WordPress Object Cache。
比如 get_the_terms 和 wp_get_object_terms 这两个函数,功能基本一样,但是 get_the_terms 直接从对象缓存中取数据,无查询,而 wp_get_object_terms 每次都从数据库中取数据。
WordPress 插件和主题如果一定要直接查询数据库,请做好 WordPress Object Cache,将查询的结果使用 wp_cahce_set 存到 Object Cache 中,下次直接使用 wp_cache_get 获取。
不过,需要注意的是,别过度,比如某些已经使用过 WordPress Object Cache 的模版函数,就不要自作多情再增加一个了,那样会更慢。
Transients 是瞬时的意思,WordPress 的 Transients API 就是 WordPress 用来存储一些缓存的数据到数据库中最简单也是最标准的方法,Transients API 给这些缓存的数据一个过期时间,并且时间已到就会自动删除,所以如果你需要存储一些有生命周期的选项的时候,Transients API 就是最好的选择。
这难道同样不是我们做缓存的最佳选择么?
WordPress 小工具其实是速度变慢的根源之一,因为这会引发许许多多的数据查询。所以,尝试自己手写 SideBar 吧,这并不难。而且,这样也有利于我们使用 WordPress Transients API 和 WordPress Object Cache。
如何快速有效的设置(锁定)首页,一直电脑技术员头疼的一件事。虽然这算不上一件难事,但每次都要操作固定的步骤,甚至一台电脑有几个浏览器的时候,还要操作多次。而且有时还会忘记设置首页,也无非不是一件麻烦事。特别是如何在 Windows PE 环境下快速设置(锁定)目标系统所有浏览器首页,并不是简单几步操作就可以完成的事情。因此,特开发此软件协助各位快捷、批量的设置浏览器首页。
软件相对于 2 代版本,代码完全重写,提高执行效率,大大降低首页设置失败几率,修复 2 代严重 BUG,增加了“安全锁定”、“加入收藏”等功能,乃首页设置(锁定)之利器也!
程序名称:Super StartPage 3 (SP3)
程序版本:3.0.0.229
支持系统:适用于 x86 / x64 的 Windows XP / Windows Vista / Windows 7 / Windows 8 操作系统以及同期Windows PE系统
支持语言:简体中文 (Simplified Chinese)
下载地址:百度网盘
文件效验:
压缩包:
文件:SuperStartPage3_3.0.0.229.zip
大小:1638579 字节
修改时间:2013年8月25日, 19:47:08
MD5:05A6CBC1DC6DB379A436B9EC3C0BA7D5
SHA1:693EEF8DBE5D1341D96DE52B15FCB1946F7662FB
CRC32:87ECD4FB
主程序:
文件:SuperStartPage3.exe
大小:2512844 字节
文件版本:3.0.0.229
修改时间:2013年8月25日, 18:21:58
MD5:388840AA3635D09FC05B6C94128C7763
SHA1:FC9226DD0E4AB9DE8A7E47CEAE86145A840FD2FD
CRC32:F59D1600
(任何未经作者同意对程序进行的修改操作,包含但不限于破解、反编、二次开发等,需承担法律责任)
之前的文章:iGoogler 主题使用七牛镜像存储 WordPress 插件导致 JS 加载失败的修正,提到过一个问题:这样操作以后,该主题 JS 合并的效果消失,那么,我们何不手动合并 JS 文件呢?下面就和我一起来动手吧!最终效果是合并为两个文件:all-in-one.js 和 google-plusone.js。当然,你如果确定一定会开启 Google Plus 的话,你完全可以全部合并为 all-in-one.js。
1)在 wp-content/themes/iGoogler/js 目录以 UTF-8 无 BOM 模式创建 all-in-one.js,不懂如何创建的,就直接把 comments-ajax.js(comment-ajax.js)复制一份,重命名为 all-in-one.js,然后清空里面的内容即可;
2)在 wp-content/themes/iGoogler/js/all-in-one.js 中写入以下代码;
// JavaScript Document $(document).ready(function(e) { // Fix some bugs for ie6 if ('undefined' == typeof(document.body.style.maxHeight)) { if($(".wrap").width() > 1219) $(".wrap").width(1219); else if($(".wrap").width() < 1001) $(".wrap").width(1001); } // Reisize Main Content to fit height var minheight = Math.max( $("#lbar").height(), $("#rbar").height() ); if( $("#main").height() < minheight) { $("#main").height(minheight); } // Navigation $("#nav .menu li").has(".sub-menu").mouseover(function(e) { $("#nav .sub-menu:visible").css("z-index",99); $(this).children(".sub-menu").css("z-index",999); $(this).children(".sub-menu").stop().slideDown("fast"); }); $("#nav .menu li").has(".sub-menu").mouseleave(function(e) { $(this).children(".sub-menu").removeAttr('style').stop().slideUp("fast"); }); // left sidebar animation var position = $("#lbar .line").position().top + 20; $("#lbar .lbar_content").css("top", position); $("#lbar .lbar_title").click(function(e) { $(".lbar_title a").removeClass("current"); $(e.target).addClass("current"); $(".lbar_content").css("display","none"); $(this).next(".lbar_content").slideDown(500); }); }); // JavaScript Document $(document).ready(function(e) { // Fix Position problems of #respond_ad if($("#respond_ad").length > 0) { if ($("#respond_ad").offset().left < 455 ) { $("#respond_ad").offset({left:455}); } if ($("#respond").height() < $("#respond_ad").height() ) { $("#respond").height($("#respond_ad").height()); } } if($("#single_bottom_ad").length > 0) { if($("#sidebar_bottom").offset().top + $("#single_bottom_ad").height() > $(".post-nav").offset().top) { $("#sidebar_bottom").css("margin-bottom",$("#single_bottom_ad").height() - $("#sidebar_bottom").height()); } } // Single Post footer turn $("#sidebar_bottom span:first").addClass("active"); $("#sidebar_bottom ul:first").fadeIn(); $(".post-nav").css("margin-top",$("#sidebar_bottom ul:first").css("height")); $("#sidebar_bottom span").mouseover(function (){ $("#sidebar_bottom span").removeClass("active");$(this).addClass("active"); if($(this).next("ul").css("display")!="block") { $("#sidebar_bottom ul").hide(); $(this).next("ul").fadeIn(); } $("#main .post-nav").css("margin-top",$(this).next().css("height")); }); }); /** * WordPress jQuery-Ajax-Comments v1.3 by Willin Kan. * URI: http://kan.willin.org/?p=1271 */ var i = 0, got = -1, len = document.getElementsByTagName('script').length; while ( i <= len && got == -1){ if("undefined" != typeof(document.getElementsByTagName('script')[i].src) ) { var js_url = document.getElementsByTagName('script')[i].src; got = js_url.indexOf('all-in-one.js'); i++ ; //Modified by me } } js_url = js_url.replace('nikbobo.qiniudn.com','www.nikbobo.net'); var edit_mode = '1', // 再編輯模式 ( '1'=開; '0'=不開 ) ajax_php_url = js_url.replace("js/all-in-one.js","comments-ajax.php"), wp_url = js_url.substr(0, js_url.indexOf('wp-content')), pic_sb = wp_url + 'wp-admin/images/wpspin_light.gif', // 提交 icon pic_no = wp_url + 'wp-admin/images/no.png', // 錯誤 icon pic_ys = wp_url + 'wp-admin/images/yes.png', // 成功 icon txt1 = '<div id="loading"><img src="' + pic_sb + '" style="vertical-align:middle;" alt=""/> 正在提交, 请稍候...</div>', txt2 = '<div id="error">#</div>', txt3 = '"><img src="' + pic_ys + '" style="vertical-align:middle;" alt=""/> 提交成功', edt1 = ', 刷新页面之前可以<a rel="nofollow" class="comment-reply-link" href="#edit" onclick=\'return addComment.moveForm("', edt2 = ')\'>再编辑</a>', cancel_edit = '取消编辑', edit, num = 1, comm_array=[]; comm_array.push(''); $(document).ready(function($) { $comments = $('#comments-title'); // 評論數的 ID $cancel = $('#cancel-comment-reply-link'); cancel_text = $cancel.text(); $submit = $('#commentform #submit'); $submit.attr('disabled', false); $('#comment').after( txt1 + txt2 ); $('#loading').hide(); $('#error').hide(); $body = (window.opera) ? (document.compatMode == "CSS1Compat" ? $('html') : $('body')) : $('html,body'); /** submit */ $('#commentform').submit(function() { $('#loading').slideDown(); $submit.attr('disabled', true).fadeTo('slow', 0.5); if ( edit ) $('#comment').after('<input type="text" name="edit_id" id="edit_id" value="' + edit + '" style="display:none;" />'); /** Ajax */ $.ajax( { url: ajax_php_url, data: $(this).serialize(), type: $(this).attr('method'), error: function(request) { $('#loading').slideUp(); $('#error').slideDown().html('<img src="' + pic_no + '" style="vertical-align:middle;" alt=""/> ' + request.responseText); setTimeout(function() {$submit.attr('disabled', false).fadeTo('slow', 1); $('#error').slideUp();}, 3000); }, success: function(data) { $('#loading').hide(); comm_array.push($('#comment').val()); $('textarea').each(function() {this.value = ''}); var t = addComment, cancel = t.I('cancel-comment-reply-link'), temp = t.I('wp-temp-form-div'), respond = t.I(t.respondId), post = t.I('comment_post_ID').value, parent = t.I('comment_parent').value; // comments if ( ! edit && $comments.length ) { n = parseInt($comments.text().match(/\d+/)); $comments.text($comments.text().replace( n, n + 1 )); } // show comment new_htm = '" id="new_comm_' + num + '"></'; new_htm = ( parent == '0' ) ? ('\n<ol style="clear:both;" class="commentlist' + new_htm + 'ol>') : ('\n<ul class="children' + new_htm + 'ul>'); ok_htm = '\n<span id="success_' + num + txt3; if ( edit_mode == '1' ) { div_ = (document.body.innerHTML.indexOf('div-comment-') == -1) ? '' : ((document.body.innerHTML.indexOf('li-comment-') == -1) ? 'div-' : ''); ok_htm = ok_htm.concat(edt1, div_, 'comment-', parent, '", "', parent, '", "respond", "', post, '", ', num, edt2); } ok_htm += '</span><span></span>\n'; $('#respond').before(new_htm); $('#new_comm_' + num).hide().append(data); $('#new_comm_' + num + ' li').append(ok_htm); $('#new_comm_' + num).fadeIn(4000); $body.animate( { scrollTop: $('#new_comm_' + num).offset().top - 200}, 900); countdown(); num++ ; edit = ''; $('*').remove('#edit_id'); cancel.style.display = 'none'; cancel.onclick = null; t.I('comment_parent').value = '0'; if ( temp && respond ) { temp.parentNode.insertBefore(respond, temp); temp.parentNode.removeChild(temp) } } }); // end Ajax return false; }); // end submit /** comment-reply.dev.js */ addComment = { moveForm : function(commId, parentId, respondId, postId, num) { var t = this, div, comm = t.I(commId), respond = t.I(respondId), cancel = t.I('cancel-comment-reply-link'), parent = t.I('comment_parent'), post = t.I('comment_post_ID'); if ( edit ) exit_prev_edit(); num ? ( t.I('comment').value = comm_array[num], edit = t.I('new_comm_' + num).innerHTML.match(/(comment-)(\d+)/)[2], $new_sucs = $('#success_' + num ), $new_sucs.hide(), $new_comm = $('#new_comm_' + num ), $new_comm.hide(), $cancel.text(cancel_edit) ) : $cancel.text(cancel_text); t.respondId = respondId; postId = postId || false; if ( !t.I('wp-temp-form-div') ) { div = document.createElement('div'); div.id = 'wp-temp-form-div'; div.style.display = 'none'; respond.parentNode.insertBefore(div, respond) } !comm ? ( temp = t.I('wp-temp-form-div'), t.I('comment_parent').value = '0', temp.parentNode.insertBefore(respond, temp), temp.parentNode.removeChild(temp) ) : comm.parentNode.insertBefore(respond, comm.nextSibling); $body.animate( { scrollTop: $('#respond').offset().top - 180 }, 400); if ( post && postId ) post.value = postId; parent.value = parentId; cancel.style.display = ''; cancel.onclick = function() { if ( edit ) exit_prev_edit(); var t = addComment, temp = t.I('wp-temp-form-div'), respond = t.I(t.respondId); t.I('comment_parent').value = '0'; if ( temp && respond ) { temp.parentNode.insertBefore(respond, temp); temp.parentNode.removeChild(temp); } this.style.display = 'none'; this.onclick = null; return false; }; try { t.I('comment').focus(); } catch(e) {} return false; }, I : function(e) { return document.getElementById(e); } }; // end addComment function exit_prev_edit() { $new_comm.show(); $new_sucs.show(); $('textarea').each(function() {this.value = ''}); edit = ''; } var wait = 15, submit_val = $submit.val(); function countdown() { if ( wait > 0 ) { $submit.val(wait); wait--; setTimeout(countdown, 1000); } else { $submit.val(submit_val).attr('disabled', false).fadeTo('slow', 1); wait = 15; } } });// end jQ addComment={moveForm:function(d,f,i,c){var m=this,a,h=m.I(d),b=m.I(i),l=m.I("cancel-comment-reply-link"),j=m.I("comment_parent"),k=m.I("comment_post_ID");if(!h||!b||!l||!j){return}m.respondId=i;c=c||false;if(!m.I("wp-temp-form-div")){a=document.createElement("div");a.id="wp-temp-form-div";a.style.display="none";b.parentNode.insertBefore(a,b)}h.parentNode.insertBefore(b,h.nextSibling);if(k&&c){k.value=c}j.value=f;l.style.display="";l.onclick=function(){var n=addComment,e=n.I("wp-temp-form-div"),o=n.I(n.respondId);if(!e||!o){return}n.I("comment_parent").value="0";e.parentNode.insertBefore(o,e);e.parentNode.removeChild(e);this.style.display="none";this.onclick=null;return false};try{m.I("comment").focus()}catch(g){}return false},I:function(a){return document.getElementById(a)}}; /* highlight v3 Highlights arbitrary terms. <http://johannburkard.de/blog/programming/javascript/highlight-javascript-text-higlighting-jquery-plugin.html> MIT license. Johann Burkard <http://johannburkard.de> <mailto:jb@eaio.com> */ jQuery.fn.highlight = function(pat) { function innerHighlight(node, pat) { var skip = 0; if (node.nodeType == 3) { var pos = node.data.toUpperCase().indexOf(pat); if (pos >= 0) { var spannode = document.createElement('span'); spannode.className = 'highlight'; var middlebit = node.splitText(pos); var endbit = middlebit.splitText(pat.length); var middleclone = middlebit.cloneNode(true); spannode.appendChild(middleclone); middlebit.parentNode.replaceChild(spannode, middlebit); skip = 1; } } else if (node.nodeType == 1 && node.childNodes && !/(script|style)/i.test(node.tagName)) { for ( var i = 0; i < node.childNodes.length; ++i) { i += innerHighlight(node.childNodes[i], pat); } } return skip; } return this.each(function() { innerHighlight(this, pat.toUpperCase()); }); }; jQuery.fn.removeHighlight = function() { return this.find("span.highlight").each(function() { this.parentNode.firstChild.nodeName; with (this.parentNode) { replaceChild(this.firstChild, this); normalize(); } }).end(); };
3)将 wp-content/themes/iGoogler/js/all-in-one.js 中的域名改成你的;
查找
js_url = js_url.replace('nikbobo.qiniudn.com','www.nikbobo.net');
其中,nikbobo.qiniudn.com 更改为你的七牛提供的二级域名,www.nikbobo.net 改成你的 WordPress 站点域名。
4)将 wp-content/themes/iGoogler 目录的 all-in-one-js.php 整个替换为以下代码;
<script type="text/javascript" src="<?php echo get_template_directory_uri();?>/js/all-in-one.js"></script> <?php if(igoogler_option('google-plus-one')) { echo '<script type="text/javascript" src="' . get_template_directory_uri() . '/js/google-plusone.js"></script>' . "\n"; } ?> <?php if(search_words()): $arr = preg_split('/[\s,]+/', search_words()); ?> <script type="text/javascript"><!--//--><![CDATA[//><!-- $(document).ready(function(e) { <?php foreach($arr as $words):?> $(".post").highlight("<?php echo $words;?>"); <?php endforeach; ?> }); //--><!]]></script> <?php endif;?>
大功告成!
1)将以下代码添加到 wp-content/themes/iGoogler/js/all-in-one.js 末尾;
(function() { var po = document.createElement('script'); po.type = 'text/javascript'; po.async = true; po.src = 'https://apis.google.com/js/plusone.js'; var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(po, s); })();
2)将 wp-content/themes/iGoogler 目录的 all-in-one-js.php 整个替换为以下代码;
<script type="text/javascript" src="<?php echo get_template_directory_uri();?>/js/all-in-one.js"></script> <?php if(search_words()): $arr = preg_split('/[\s,]+/', search_words()); ?> <script type="text/javascript"><!--//--><![CDATA[//><!-- $(document).ready(function(e) { <?php foreach($arr as $words):?> $(".post").highlight("<?php echo $words;?>"); <?php endforeach; ?> }); //--><!]]></script> <?php endif;?>
大功告成!
因为某些原因,更换代码插件到 WP-Syntax。据说这也是 WordPress 官方推荐的插件。特此记录一下折腾过程。
切换你的 WordPress 编辑器到 HTML 模式,使用以下格式添加代码:
<pre lang="Language" line="1" escaped="true" > </pre>
说真的,WP-Syntax 的 CSS 样式看起来比较难看,所以修改了一下,参考倡萌的修改方法,在你的主题的 style.css 文件中,添加以下代码:
.wp_syntax { color:#100; background-color:#f9f9f9; border:1px solid #EBEBEB; margin:0 0 1.5em 0; overflow:auto; } .wp_syntax { overflow-x:auto; overflow-y:hidden; padding-bottom:expression(this.scrollWidth > this.offsetWidth ? 15:0); width:99%; } .wp_syntax table { border:none; border-collapse:collapse; margin:0; padding:0; width:100% !important } .wp_syntax caption { padding:2px; width:100%; background-color:#def; text-align:left; font-family:Monaco; font-size:13px; line-height:20px; } .wp_syntax caption a { color:#1982d1; text-align:left; font-family:Monaco; font-size:13px; line-height:20px; text-decoration:none; } .wp_syntax caption a:hover { color:#1982d1; text-decoration:underline; } .wp_syntax div,.wp_syntax td { border:none; text-align:left; padding:0; vertical-align:top; } .wp_syntax td.code { background:none; line-height:normal; white-space:normal; padding-left:10px; } .wp_syntax pre { background:transparent; margin:0; padding:0; width:auto; float:none; clear:none; overflow:visible; font-family:Monaco; font-size:13px; line-height:20px; white-space:pre; } .wp_syntax td.line_numbers pre { border-right:3px solid #6CE26C; background-color:#E7E5DC; color:gray; width:20px; padding:0 5px; text-align:right; }
然后,在你主题的 Functions.php 中添加以下代码来禁用 WP-Symtax 插件的 CSS 样式代码。
<?php if ( has_action( 'wp_print_styles', 'wp_syntax_style' ) ) { remove_action( 'wp_print_styles', 'wp_syntax_style' ); }; ?>
不知道大家有没有过这样的经历?辛辛苦苦从大神的网站上复制的代码,粘贴到自己的博客上后,刷新——哦,My God!没效果!,这还不算糟糕,最糟糕的是——出错了!站点挂掉了!这是怎么回事呢?今天就让我来带你们一探究竟。
问题出自万恶 WordPress,它会自动将函数代码中半角的单引号、双引号转换为全角标点,虽然在页面上显示的还是半角标点,但复制后却是全角的标点,造成函数代码无法运行(真不知道WordPress 的开发者为什么要进行这些转换)。所以这里建议喜欢在自己博客上记录折腾 WordPress 心得体会或转载代码的童鞋,请按下面的方法,改造一下自己的WordPress程序,不要弄一堆不能用的代码放在那,误人子弟。
很简单,修改 wp-includes/formatting.php ,把相关语句注释掉即可。
查找
// static strings $curl = str_replace($static_characters, $static_replacements, $curl); // regular expressions $curl = preg_replace($dynamic_characters, $dynamic_replacements, $curl);
替换为
// static strings //$curl = str_replace($static_characters, $static_replacements, $curl); // regular expressions //$curl = preg_replace($dynamic_characters, $dynamic_replacements, $curl);
大功告成!
方法一固然好,但是每次 WordPress 更新就失效了,又要重新更改一次,怎么办?
很简单,在控制面板搜索“Quotmarks Replacer”插件安装即可,这个插件就是专门为了解决这个问题而生的。