标签归档:wordpress

WordPress 4.6 诚意更新

说实话,WP更新算是比较频繁,但已经很久提不起我的兴趣了。属于安全方面的更新必不可少,默默无闻我也心存感激。但功能上的更迭缓慢,还是让我有点失望。

今天打开后台,发现系统又双叕更新了,还是习惯性的点击(同时在想,之前说好的静默更新呢?),update完成后,同样出现新功能介绍。不同的是,这次增加的新功能,让我感觉一股清流迎面而来。

  1. Streamlined Updates
    这个可以直译为“顺滑更新”吧,说穿了就是让更新功能用上了ajax,不用在更新过程中把页面跳来跳去了,着实高大上啊。
  2. Native Fonts
    woo,终于想开了,不在后台使用google open fonts了,这个太影响后台相应速度了。之前我还啪啪地忙着用各种方法禁用open fonts呢。而且,theme里我也不建议用google fonts,除非特殊展示页。汉语页面好像没什么人用特殊字体,除非有专业的字体美工,或提取固定字段的特殊字体后再加载(例如,非学派的logo字体)。
  3. Editor Improvements
    第一个编辑功能是“Inline Link Checker”,翻译过来就是“编辑模式链接检查”功能(抱歉没做到信达雅),这个功能可以让作者在编辑过程中检查链接有效性,避免了添加链接失误且难以检查的问题。
    第二个功能是“Content Recovery”,翻译过来就是“本地文章内容恢复”功能(不要吐槽我的翻译),强调本地恢复,就是利用浏览器本地存储特性实现内容恢复,避免因为网络原因导致文章数据丢失,使文章内容可靠性更高。

同时,历年的官方theme也同步更新了,具体更新了什么我并不关心,因为反正我也不用。

关于开发者部分和其他功能更新,可以看这篇文章link

wamp本地解析域名进行wordpress调试

之前记录了把wordpress站点移植到本地进行调试的过程。其实,还有可以改进的地方。之前要实现wp在本地顺利访问,需要修改远数据库中的site_url和home值为localhost/xxx。改完之后,文章里的链接和媒体的链接,都还是原来的域名,虽然可以通过使用插件或者直接写sql语句完成替换,但这样一来数据本身发生了变化,无法回用到站点上进行部署,还可能会产生意外错误。

那么最完美的解决方法就是在本地对域名进行解析,达到完全模拟线上运行的目的。

  1. 找到apache系统的httpd.conf文件(不同的部署方式位置会有所不同),确保

    LoadModule vhost_alias_module_modules/mod_vhost_alias.so

    语句生效(语句前没有#)。

  2. 找到apache系统的xxx/extra/httpd-vhosts.conf文件(位置视部署方式而定),增加配置,例如:
    <VirtualHost *:80>
    	ServerName fxpai.com
    	DocumentRoot D:/wamp/www/wp/
    	<Directory  "D:/wamp/www/wp/">
    		Options +Indexes +FollowSymLinks +MultiViews
    		AllowOverride All
    		Require local
    	</Directory>
    </VirtualHost>

    域名和目录按照实际使用情况填写。

  3. 找到系统hosts文件,例如windows系统一般在c:/windows/system32/drivers/etc/目录下。打开文件添加解析域名,例如:
    127.0.0.1 fxpai.com

    ,域名视具体情况填写。

  4. 重启wamp或其他apache系统。
  5. windows系统打开cmd命令行,输入ipconfig /flushdns刷新dns记录。

访问你解析的域名,就可以正常访问本地网站了。

我的wordpress必备插件

用wordpress写博客很久的了,用过的插件不计其数。中间也有想不开的时候,将功能统统写到主题的functions里面。后来还是觉得维护和使用都不方便而作罢。况且,有人做好了轮子免费给你用,何必再自己造轮子?

下面是我一直到现在仍然在使用的plugins:(排名不分先后)

  1. Clean Archives Reloaded
    虽然已经2年没更新了,但是这么简单实用的功能谁在乎更新呢?效果请点击顶部menu > catagories > archives 归档 [all of articles]。
  2. Crayon Syntax Highlighter
    代码高亮插件,类似的插件有很多,这个算是功能很全的一个了。可能会产生些额外的样式和JS文件,但是现在网速这么快了,为了代码展示的漂亮一点,增加几十k又怎样!
  3. Delete-Revision
    删除多余的文章版本,这个功能对个人站长应该有用处吧。当然,经常改完文章就找后悔药的同学还是不要使用这个功能了。反正我从来都是写完就不管了,然后定期删除所有自动保存的文章版本。有人说现在主机也不贵,而且容量不低,何苦节省这点数据库?那我的回答就是:宝宝就是想要把垃圾删干净,然后心里爽。
  4. Google XML Sitemaps
    生成XML文件,有利于SEO(搜索引擎优化)。其实,我并不在乎这个事情,但是大家都会做一些优化,我也做吧。带google这个词的东西,就算没有用,拿出来秀一下也挺有面子的呗。
  5. My Category Order
    顾名思义,就是给自己的分类进行排序,用在侧边栏上还是很方便的。wp本身是没有这个功能的。很奇怪这个插件在wp官方网站上找不到了,后台链接的是作者自己的页面。也有很多类似功能的插件吧,但是我用习惯了,懒着换。当然,现在我把类别放到菜单里,就用不上这个了。
  6. My Link Order
    还是这个人写的插件,还是order功能的插件,只不过order的是友情链接。这个功能太有用了好不好,原版wp链接管理没有排序功能,反而搞了一大堆链接关系什么的,搞不清是怎么想的。这个插件在官方也没有了,只能从作者网站页面下载。
  7. WP Slug Translate
    对英文渣来讲(虽然我不太愿意承认),这个插件可以代替你生成漂亮的文章固定链接,使用的是bing的机器翻译api,翻译效果差强人意。但是固定链接就是简短一点就可以啦,实在不行动手修改一下,也不用费心去翻英汉词典了(sorry,现在已经没有人翻英汉词典了吧,估计都是手机翻译软件)。
  8. WPJAM TOC
    中国wp大牛我爱水煮鱼写的插件,自动根据文章标题生成目录。很像维基百科的页面目录样式。跟维基百科一样就是好的好吧,不要犹豫!
  9. 多说
    国产社会化评论系统。功能没得说,团队维护,使用更放心。关于国产社会化评论系统,我很久以前写过一篇评测:评测,仅供参考。
  10. 微信机器人高级版
    现在做微信的人好多,把微信和wp结合起来的也有几个,甚至已经有完整商业化的服务。这个也是我爱水煮鱼的作品,目前还是收费的,不过定期会搞一些活动免费获得。这个不知道是不是最好的,但是用起来没什么问题。用它自己架设一个微信订阅号平台,实现基本的功能分分钟的事情。好处就是网站内容和微信内容统一管理,数据安全性也有保障,不会被微信莫名其妙删掉。本站当然也有微信订阅号啦:
    微信订阅号二维码
  11. Force Regenerate Thumbnails
    来介绍这个插件,大概是我最喜欢的插件了。它的功能很简单,一次性重新生成所有图片媒体。有什么用?如果你曾经换过一些themes,或者用过一些不靠谱的themes,那你真的应该打开ftp,去服务器上看看,图片上传的文件夹里有多少用不上的图片尺寸。以前我的每张图片上传后,都会自动生成7~8张不同尺寸的图片。更换主题或者在后台更改三个媒体尺寸以后,以前的图片是不会重新生成的。当然,这么做是绝对正确的。但是对于不需要将图片外链的个人站长来说,这完全就是浪费空间。用完以后,虚拟主机都可以降低一个档次了!但有一点需要提醒用户,使用这个插件的时候,最好在本地测试好,确保不会发生意外事件,使用的时候一定要关闭所有的其他插件,注意,是所有其他插件。这个插件的破坏力太强了,谨慎使用。
  12. 还有两个插件就是disable google fonts插件和replace google fonts插件,都是国人开发的,用来避免google fonts服务无法使用而造成的网页加载缓慢的问题。但是现在我已经不再使用了,因为google fonts在国内已经恢复访问了,而且replace那个插件,使用的是360的公共库,最近也不太稳定,索性禁用掉就行了。另外,我之前还写过一篇优化wordpress访问速度的文章,仅供参考。

以上就是我目前在使用的插件,如果你还用过什么好的插件,也可以推荐给我。

WordPress网站从服务器转移到本地调试

很多wordpress爱好者可能都遇到过这样的情况:刚接触wp的时候,直接在虚拟主机(或者云服务器)上安装并运行了wordpress。并且,在很长一段时间内,都在网路上直接进行维护,甚至是编辑主题。但是,当你的网站需要进行大范围的改版,或者你想根据自己的内容重新进行设计工作的时候,麻烦就来了。要在本地重新建设一个环境,并把网路上的网站和数据原封不动的搬运过来,这并不是一件简单的“复制/粘贴”工作,还是有一些需要注意的问题的。非学派在这里详细列出几个步骤和注意事项,希望对正在计划进行类似操作的coder和设计师们有所帮助。

1. 建立本地调试环境

我自己在很多年的时间里,都在用一个叫做PHPnow的“环境包”(故且这么叫),这是一个很方便的东西,每当要更换电脑的时候,只要把整个文件夹拷贝/粘贴到新设备上,然后激活一下就可以了。正常情况下只要80端口没有被占用,一切都可以正常使用。但是,这个东西貌似2012年以后就没有更新了,考虑到php环境的版本等原因,我还是建议换一个先进一些的。记得以前在Linux环境下用过一个超级好用的环境包叫做LAMP——一个开源的Aphache,Mysql,Php开发环境,这么好用的东西当然要适配到windows上咯。于是,就有了这个东西WAMP

在网站上下载安装以后,持续“下一步”安装即可。安装完了以后就可以访问http://localhost访问本地页面了。

2. 官网下载WordPress安装包,并安装到本地环境

这一步其实是可以省掉的,但是我还是建议这样做,这样可以尽可能的搭建一个全新的wp环境,避免干扰和一些奇怪的问题。

在这里还是罗嗦一下,在安装wp之前,需要在phpmyadmin下新建设数据库和用户,这一步很重要。用惯了虚拟主机的站长习惯于主机商提供商数据库、用户名、密码等数据,但是在本地环境下需要自己完成这件事情。

具体步骤是:进入http://localhost/phpmyadmin页面>>右侧“数据库”选项卡>>填写新建数据库名称>>点“创建”,创建完成后,左侧点击新建的数据库>>点击右侧“权限”选项卡>>点击“添加用户”>>由上至下分别输入用户名,“localhost”,密码>>页面下方,点击“创建”,就完成了。

把你填写的这些内容,按要求再填写到由wordpress的wp_config.php文件中,就可以了。

安装WORDPRESS其他具体过程就不赘述了。

3.复制必要的文件

这一步完成以后,就开始搬运了。从你目前的主机上,下载./wp_content/themes/、./wp_content/plugins/这两个文件夹,粘贴并覆盖到本地文件相应位置。另外,还要拷贝跟你自己有关的上传文件夹。例如,我的是./upload,这个文件夹的位置与每个站长的使用设置有关。最后检查自己私人定制的文件夹,看看还有没有遗漏的。

4. 备份/恢复数据库

备份数据库比较简单的有两种方法,第一种是进入你的虚拟主机管理系统,备份整个网站或者仅备份数据库,用得到的sql文件从本地phpmyadmin中导入到相应数据库。

另一种是在虚拟主机的phpmyadmin中导出sql文件,再通过本地phpmyadmin导入到本地相应数据库中。

两种方法效果一样,且只要会操作phpmyadmin就行了。

至于其他的wordpress备份插件,我没有用过,也不想用,觉得是多此一举。

5. 修改数据库的两个关键值

倒入数据库以后,还有一项必须要做的工作,就是在数据库里改掉网站的域名和home网址,不改掉这个,网站在本地是无法正常访问的。

第一步,在你之前创建的数据库中,找到并点击wp_options表>>siteurl项>>在option_value输入框中,将域名改为http://localhost/XX。(“/XX”是你的wp项目文件夹名,如果wp安装在“/www”根目录,就不用写这部分)>>点击“执行”。

第二部,在你之前创建的数据库中,找到并点击wp_options表>>home项>>在option_value输入框中,将域名改为http://localhost/XX。(“/XX”是你的wp项目文件夹名,如果wp安装在“/www”根目录,就不用写这部分)>>点击“执行”。

改完上面这两项,浏览器输入http://localhost/XX,(“/XX”是你的wp项目文件夹名,如果wp安装在“/www”根目录,就不用写这部分)就可以正常访问网站了。当然,点击文章页面是不能访问的,因为没有启用服务器rewrite功能,启用方法请继续往下看。

6.启用本地Aphache服务器的rewrite功能

WAMP的Aphache默认是不开启rewrite功能的,这会导致WP的固定链接功能无法使用。开启的方法很简单:

修改C:\wamp\bin\apache\apache2.4.9\conf目录下httpd.conf文件,第154行行首的“#”去掉,保存。

就是下面这一行:

#LoadModule rewrite_module modules/mod_rewrite.so

重启服务器以后,进入WP的后台>>固定链接选项页面>>点击一次确定,就可以正常使用固定链接功能了。

总结

我这里没有放图片,单纯就是因为我懒。当然,文字写的也不是非常详细,只是一个原则性的过程。每个人在操作过程中多多少少都会遇到些问题。尤其是用了很长时间的网站,转移起来就更加麻烦了。不过为了更加方便的编辑和改版,这些辛苦都是值得的。


update 2016-07-25:第5项更改两个关键值实现本地访问并不是最好的方法。比较完美的方法是:使用apache的虚拟主机功能,绑定域名后,在本地hosts文件中解析域名至127.0.0.1来实现本地带域名调试。具体请点击我的另一篇介绍

WordPress加载速度缓慢的两个原因及解决办法

前阵子恢复博客的更新,但是,不论前台还是后台,打开都很缓慢。一开始以为是换了海外主机的原因,然而检查发现并不是。度娘上搜了一下发现没有比较完整的文章。于是责任心爆棚的我就想到在这里汇总一下,让遇到这个问题的人有更加清晰的解决方案。

辣么,究竟是什么问题呢?其实主要原因就是“伟大的墙”。在这堵“伟大的墙”的强力“保护”下,Wordpress产生了两大问题——字体问题和头像问题,这两项内容无法加载,造成了网站访问缓慢,让人心烦。

字体问题

wordpress使用了非常流行的google fonts,什么是google fonts?可以点击下面页面GoogleFonts,当然,不翻墙是看不到的。简单来说,就是google准备了很多开放字体(Open Fonts),用户可以在网站页面免费使用这些字体,还不用下载到本地。好处当然是很多了,例如不用担心客户端缺字体影响显示效果,也不用担心网页加载字体有速度和流量的问题(墙内除外)等。缺点当然也很明显,如果你所在的区域无法访问google,那就悲剧了。是的,我没说别人,就说你呐?看这篇文章的人,别东张西望了,仔细看下面。

wordpress主题是怎么使用google字体的呢?基本上从官方主题的twenty twelve(2012)开始,就有类似这样的一个函数function twentytwelve_get_font_url() {},函数代码我就不贴了,太占地方,它的主要作用就是根据自己主题需要获取一段google fonts代码,其中这一句很重要

$font_url = add_query_arg( $query_args, 'https://fonts.googleapis.com/css' );

是的,问题很明了了,就是这里面的url国内访问不了。怎么办?换掉它就行了!360公司学雷锋做好事一样的做了一个公共库,作用和google那个类似,只要把url换成

http://fonts.useso.com/css

就行了。注意,这更换过的传输协议是http,可不是https,后者是无法加载字体的,会导致页面加载更加缓慢。

后台访问缓慢,与页面访问缓慢基本是一个道理,但是修改起来有点麻烦。怎么办?用插件呗!太机智了,已经有小盆友@苏阳写好了插件等你安:open fonts替换插件。可惜的是,经过测试,这个插件也有点问题,就是行代码:

return str_replace('//fonts.googleapis.com/','//fonts.useso.com/',$text);

应该改为:

return str_replace('https://fonts.googleapis.com/','http://fonts.useso.com/',$text);

原因上面已经说了。

当然,还有更加决绝的办法,如果你根本不需要Theme、后台使用开放字体(并不推荐),那么你也可以使用另一个插件:Disable Google Fonts。安装启用以后,就跟开放字体说拜拜了,访问速度当然也上去了。

头像问题

与字体类似,wordpress默认使用的头像服务是Gravatar,当然,不翻墙也是访问不了的,这导致需要加载头像的页面显示缓慢。当然,解决这个问题的第一个方法就是后台“设置>讨论”页面里把“显示头像”的选项勾掉就行了,不显示头像,就没有这个烦恼了。但是,我就是矫情得要用这个头像怎么办?除了可以选择第三方的各种插件之外,我更推荐在主题的functions.php里加代码的方法,利用国内的留言服务“多说”的系统头像替换掉Gravatar的头像:

function mytheme_get_avatar($avatar) {
    $avatar = str_replace(array("www.gravatar.com","0.gravatar.com","1.gravatar.com","2.gravatar.com"),"gravatar.duoshuo.com",$avatar);
    return $avatar;
}
add_filter( 'get_avatar', 'mytheme_get_avatar', 10, 3 );

这样,就解决了头像无法加载进而拖慢页面显示速度的问题了。

经过以上简单的折腾,wordpress的网站速度可以说有了飞跃性的提升。当然这里要说的是,如果你的主题本身就不支持google fonts,那就根本不存在第一个问题,不过还是建议安装Disable Google Fonts插件或者open fonts替换插件,把后台速度优化一下,毕竟写文章的时候还是需要重视工作效率的。

WordPress 3.6默认主题IE下相册图片宽度问题

今天抽时间在本地服务器上升级到了wordpress3.6。切换到默认主题Twenty Thirteen测试了一下,发现相册图片在IE10的标准模式下有个很明显的问题,如下图。另测试了9、8、7各版本IE浏览器,均存在这个问题。Chrome浏览器显示正常,预计FF显示正常。

twentythirteen默认主题图片宽度问题

可以看出,一篇文章中gallery里的图片宽度大于一定值的时候,并没有自适应宽度。如何解决呢?改进方法如下:
1.在style.css文件中找到如下代码:(style文件第659到665行)

 .entry-content img,
 .entry-summary img,
 .comment-content img,
 .widget img,
 .wp-caption {
  max-width: 100%;
 }

加入一行代码后如下:

 .entry-content img,
 .entry-summary img,
 .comment-content img,
 .widget img,
 .wp-caption {
 max-width: 100%;
 width:100%; /*ie10 bug fix*/
 }

即可解决问题。twentythirteen图片宽度问题解决结果

如图,相册图片IE下已经自适应到了合适宽度。

但是,这只解决了一部分,继续测试发现在IE8、7模式下仍然存在问题。这与TwentyThirteen主题兼容性设置有关,打开/CSS/ie.css文件,第68到70行改为如下代码:

.gallery img {
 width: auto;
 width:100%;/*lt IE 9 fix*/
}

问题即可解决。

问题分析:gallery中的img也属于entry-content块,但是并不直接包含,根据max-width的解释:

max-width使用百分数时,定义的是基于包含它的块级对象的百分比最大宽度。

可知,IE对max-width的继承性解释和标准浏览器有所不同。故需要对IE中的gallery图片宽度做width限定。

这篇文章叙述的情况,仅存在于相册中图片宽度大于604px,且使用【gallery】shortcode加入相册时的情况,大概很少人会在相册里加入这么大的图片吧,我想。

超敬业同事小S的评论

引文:小S的禽兽评论。引来当“非学·派”博客的序好了。

禽兽日报社论:WP博客站主的救世主情结

这个问题首先要从CHAO说起。之前Z-BLOG升级的时候,CHAO眼巴巴地等了很久。我很钦佩在代码领域富有造就的人,因此也加深了我对CHAO的敬仰之情。当然在这之后,CHAO并不满意于ZBLOG小打小闹型的动静,于是反复声称要加速迈入WP时代~我真的以为他只是说说而已。

结果今天看他的博客,——酒还是那个老酒,不过这瓶子已经大不相同了~再看了看页脚的版权,好一个POWERED BY WORDPRESS!这小子的动作还真快。

好了,现在可以说我的结论了。我认为凡是那种三天两头就喜欢鼓捣自己博客站点的人,都有一个很深的自恋倾向——就是想把自己的命运狠狠的抓在自己手里,并且想把和自己有关的东西狠狠抓在手里。有这样的认识,因为我就是这样的一个人。我们认为,博客是我的孩子,于是我要让他实现我的梦想——如果我不能掌控世界,至少我可以掌控你,玩弄你于掌心。并且面对自己的东西,会特别有同情心,因为在这个世界里,我就像上帝一样,说一不二,覆雨翻云。每一次看见一个页面从末日般的颓废状态被解救出来时都有一种快感,当然每一个上帝都有自己的时间表,喜的是,与时俱进;怕的,是喜新厌旧。但我,乐意于我的安息日。因为我没有安息。

这是我的禽兽回复:

上帝也有苦楚的时候,经常要生孩子,可是却不用日~~!
经常是看到结果欣喜不已,却好了伤疤忘了疼。
无论是zblog还是wp,重要的是给了自己一个精神层面的载体。
就像wp程序本身一样,只是几个人的玩乐作品,并没有刻意发展,却征服了全世界的linux服务器。。

山贼在路上:http://hexun.com/sunlee/

原文出处:http://sunlee.blog.hexun.com/19253755_d.html