Category: WordPress进阶

  • 用WordPress搭建类Twitter微博客

    Twitter很火,WordPress也很火,这篇文章就教大家使用WordPress搭建类Twitter的微博客。

    具体做法:
    一,在博客根目录找到:wp-config.php
    加入一下代码:
    define('WP_POST_REVISIONS', false);//主要作用是让ID连续

    二,上传并启用两个插件:
    1,wp-pagenavi:分页链接。
    2,super-switch:主要作用是让ID连续。

    三,找到:
    wp-includes/functions.php,加入以下代码:
    //count 1 day post count1day()
    function count1day()
    {
    global $wpdb;
    $strsql = "SELECT count( ID ) AS c FROM wp_posts WHERE post_date > SUBDATE(NOW(),INTERVAL 1 day)" ;
    $xxooxx = $wpdb->get_var($strsql);
    return $xxooxx;
    }
    //count 1 day post count1day()
    //count 1 week post count1week()
    function count1week()
    {
    global $wpdb;
    $strsql = "SELECT count( ID ) AS c FROM wp_posts WHERE post_date > SUBDATE(NOW(),INTERVAL 1 week)" ;
    $xxooxx = $wpdb->get_var($strsql);
    return $xxooxx;
    }
    //count 1 week post count1week()
    //count post
    function countsend()
    {
    global $wpdb;
    $strsql = "SELECT count( ID ) AS c FROM wp_posts" ;
    $xxooxx = $wpdb->get_var($strsql);
    return $xxooxx;
    }
    //count post

    四,找到:wp-includes/general-template.php
    加入以下代码:
    //内页标题输出带一部分正文
    //$title = strip_tags( apply_filters( 'single_post_title', $post->post_title ) );//原代码 替换成以下
    $title = strip_tags( apply_filters( 'single_post_title', $post->post_title ) ).":".strip_tags( apply_filters( 'single_post_content', $post->post_content ) );
    if(strlen($title) > 120)
    $title = mb_substr($title,0,120,'UTF-8')."...";

    操作记录作者也整理了一份,点击下载。

    效果可以查看DEMO:http://tarr.cn/blog/

  • 关于Prower V2主题使用中的问题集锦

    很多朋友在留言中询问关于Prower V2这款主题在使用中的问题,而我也多次在留言里做了回答,无奈留言太多而且不集中,所以前来询问的朋友一般都不愿意从留言评论中去寻找答案,为了不再重复回答这些问题,所以特在此将询问最多的问题在集中回答一次。

    1、关于显示“全文阅读”的摘要显示问题

    博客的首页以及列表页中文章里显示的“全文阅读”,这里并没有使用插件,也不是使用什么摘要的,这里只是利用Wordpress本身自带的编辑器来完成的:

    编辑器按钮

    如上图所示,只需在内容里插入这个按钮即可实现那个类似摘要的功能,在插入这个按钮前,请另起段落再使用,因为样式的原因直接跟在内容里插入会导致“全文阅读”前面的图标显示一半;

    2、关于评论里的嵌套回复

    由于此主题是在Wordpress2.7发布之前制作的,所以不能实现在WP2.7中新增的评论翻页以及嵌套回复功能,本博客的嵌套回复功能是利用“WP Thread Comment”插件实现的,该插件的后台设计样式如下:

    编辑评论的HTML:
    <div class=”comment-childs” id=”comment-[ID]”><?php if(function_exists(“get_avatar”)) echo get_avatar( $comment, 32 ); ?> <strong>[author]</strong> 回复于:[moderation][date] [time][content]</div>

    编辑评论的CSS:
    .editComment, .editableComment, .textComment{
    display: inline;
    }
    .comment-childs{
    border-top: 1px dashed #559CE7;
    margin: 5px 2px 2px 4px;
    padding: 4px 2px 2px 4px;
    }
    .chalt{
    }
    #newcomment{border:1px dashed #777;width:90%;}
    #newcommentsubmit{color:#000;}
    .adminreplycomment{
    border:1px dashed #777;
    width:99%;
    margin:4px;
    padding:4px;
    }
    .mvccls{color: #999;}

    *如果复制以上代码而样式不能正常显示的话,请手动修改一下代码中的双引号以及“-”,因为可能复制的时候这些代码被转换成了中文的。

    3、关于侧边栏下掉问题

    侧边栏下掉问题,基本上是由于左侧内容部分超出默认宽度引起的,请检查左侧正文中的格式,因为很多这样的情况都是因为日志内容是直接从外面复制进来的,默认就会带有其他的样式,过滤掉这些样式就可以;

    还有另一种可能是因为左侧内容中的图片超出宽度,建议修改图片宽度到600px左右为最佳;

    4、关于小工具使用问题

    要替换掉主题默认的侧边栏内容的话,请在主题 – 小工具设置里,将小工具放置在“主题2”下面。

    小工具

  • 让WordPress Blog“智能”的9种方法

    很多人可能会对这个标题和“智能”这个词感到困惑。对我而言,一个“智能”的blog是指能够按访客行为和特征作出不同动作的地方。

    智能Blog的一个简单例子是在侧边栏上显示今日最热门文章的列表。这个列表会根据访客的行为而改变,因此,这肯定是一个智能Blog的特征。有大量的WordPress插件可以帮助你自动实现这个功能(例如Top 10),但是这不是关键所在。问题的关键是让你的Blog具有为每位访问者的行为而改变的能力,能够协助你达到交流的目的(不管它们是什么)。 一个热门文章的列表是个很简单的特性, 那么让我来带你看看另一个级别的“智能”,通过多种方式展示你自己来让整个Blog看起来更“智能”。

    能够在你的Blog上实现的智能特性列表

    1. 为不同的访客显示不同的欢迎信息

    为不同的类型的访客显示不同的内容是达到交流目的的非常好的方法。 比如,你可以为新访客显示专属欢迎信息,但是对回头客不显示。 这个信息可以用来鼓励新访客订阅你Blog的RSS feed, 下载你的电子书,跟随你的Twitter, 或满足其他交流目的。 你还可以在信息中根据访客的来源显示特定的“请做某事”的请求,比如如果访客从Digg.com而来,你可以要求你的访客Digg你的文章。

    如果你还在为如何在WordPress Blog上实现这样的特性而苦恼时,实际上已经有一些插件可以自动为你做这些了(比如WP Greet Box和Referrer Detector)。 再次提醒大家,关键是这些插件给你能够随读者变化而改变Blog的能力。

    2. 显示其他人从当前文章又去了哪里

    这个特性和显示一个相关文章列表相似, 但还有点儿不同。因为现在这列表的内容由访客行为决定。 大部分相关文章插件使用一个算法来决定文章相关性,但是用算法也只能做到这个程度了。为什么不信任你的大活人访客来生成相关文章的列表呢?

    你可以安装Where did they go from here?插件来实现这个特性。这个插件会在你的blog文章后添加一个“看这页的读者也看了…”区域,并通过追踪访客行为来填满这个列表。

    3. 显示基于搜索查询数的相关文章

    当访客通过搜索引擎来到你的网站时,他们都在寻找非常具体的内容。 如果他们来到你的网站后没有立即找到他们想要的内容,他们就会马上离开。 对blog来说,明智的做法是探测这些通过搜索引擎而来的访客的搜索关键词,并显示一个和那些关键词非常匹配的文章列表。 这样的话,如果当前文章并不是访客想要的,他们会在离开你的站点前被吸引到其他和他们的搜索关键词相关的文章。

    为了实现这个特性, 你要做的就是安装WP Greet Box,Referrer Detector, 或Landing Sites这几个WordPress插件之一。

    4. 感谢第一个评论者

    大多数人喜欢和其他“人”互动。 我喜欢阅读blog,因为我知道对面有某个人在那儿,我可以和他/她发Email或是聊天。 一个给忠实读者奖励的好办法是感谢对你的Blog有贡献的第一个评论者。 这可以帮助你打破僵局并使你的新读者确定,如果他们想给你发email时你就在那里。

    想实现这个功能,你可以使用Comment RelishWordPress插件。

    5. 为使用广告过滤软件的访客显示自定义信息

    我知道我估计要因为介绍这个特性而被喷, 但是还得接着说(请别喷得太厉害…)。

    如果你主要从自己的Blog广告上赚钱,你的收入肯定会因为访客浏览器上的广告过滤软件而受影响。 智能blog会提醒使用广告过滤软件的访客,建议他们通过关闭广告过滤来支持blog的运作。 当然这个信息只会出现一次,不然blog的访问量肯定会降低。

    如果你对这个特性感兴趣,你可以试试Anti-AdblockWordPress插件,它会为启用广告过滤功能的访客以任意频率(我推荐一次),显示任何你设置的提示信息。

    6. 选择性显示广告

    你可能知道Google广告采用“智能价格”来判断你每次点击的价格。这意味着如果你的广告点击率(点击与显示的比?)很高,他们会提高每次点击的价格。你可以通过不为那些肯定不打算点击广告的访客显示来优化点击率。 为了做到这点,你必须意识到来你的Blog有两种人,新来的和回头客。新访客更有可能点击广告,所以最佳选择是不要为回头客显示这些内容。

    你可以通过安装Who Sees Ads?来实现这个功能,它是选择性显示广告的终极插件。

    7. 只为新访客显示迷你“关于”区

    你是否见过侧边栏有迷你“关于”区的blog? (如果没有,你可以看看Planet Ozh的侧边栏)。有没有必要只为新访客显示这个“关于”区呢?为常来你blog的人隐藏这个区域可以帮助你减少侧边栏的栏目,并且能帮你在滚动条前显示其他重要内容。

    你同样可以用Who Sees Ads插件来实现这个功能。只需将“关于”区作为一个广告单元放到你的侧边栏中,并将它设置为只为新访客显示即可。

    8. 要求忠实读者捐助你的blog

    对我而言,要求新访客捐助我的blog没有任何意义,因为我还不知道他们觉得我的文章怎么样。如果这个访客经常回来,那我就知道我写得内容对他们来说是有帮助的。让长期读者捐助我的blog会让我感觉自在些,因为他们更有可能出手。 对我来说,这个特性和第六个特性(选择性显示广告)放一起比较有价值。新访客只看到广告,而回头客只看到捐助请求。

    同样,你可以用Who Sees Ads?插件来实现这个特性。只要将捐助条幅作为广告单元,并指定它只为回头客显示即可。

    9. 显示“外出度假”信息

    任何人都需要放松和休息。 让你的读者们知道你去度假了,并让他们知道什么时候你该回来了是不是个好主意呢? 这样你就不会因为你的“不活动”而失去读者,也不会失去那些等待你立即回复评论的访客。

    这其实并不是一个基于访客行为的特性,但是我觉得它依然是个智能特性。因为这个信息只为特定时间段内访问你的blog的访客显示。

    你可以再次使用Who Sees Ads?在特定日期范围内在blog的最上部显示“外出度假”信息。 我很喜欢这个特性,因为当度假归来时,你不需要记着把这个提醒条幅撤下来。 你还可以在下次去度假时再用上这个条幅。

    结论

    到这里我想大家应该知道我说的“智能”blog是什么样的了吧。 运气好的话,这些强大的插件们可以帮助你重塑你的Blog,把它变成一个更“访客主导”的地方。

  • WordPress十大安全设置技巧

    WordPress是目前世界上使用广泛的博客软件,比较容易受到各种攻击,因此WordPress安全性也是非常重要的,以下有10个安全技巧,可以帮助你轻松的解决WordPress安全性问题,以免你在WordPress的安全性上走更多的弯路。

    1、升级WordPress到最新版本

    一般来说,新版本的WordPress安全性都会比老版本要好一些,并且解决了已知的各种安全性问题,特别当遇到重大的版本升级时,新版本可能会解决更多的关键性问题。(例如老版本WordPress有remv.php重大漏洞,可能会导致遭受DDoS攻击,升级到最新2.7版本可解决这个问题)

    2、隐藏WordPress版本

    编辑你的header.php模板,将里面关于WordPress的版本信息都删除,这样黑客就无法通过查看源代码的防治得知你的WordPress有没有升级到最新版本。

    3、更改WordPress用户名

    每个黑客都知道WordPress的管理员用户是admin,具有管理员权限,会攻击这个用户,那么你需要创建一个新用户,将其设置为管理员权限,然后删除老的admin帐号,这就能避免黑客猜测管理员的用户名。

    4、更改WordPress用户密码

    安装好WordPress后,系统会发送一个随机密码到你的信箱,修改这个密码,因为这个密码的长度只有6个字符,你要将密码修改为10个字符以上的复杂密码,并尽量使用字母、数字、符号相混合的密码。

    5、防止WordPress目录显示

    WordPress会默认安装插件到/wp-content/plugins/目录下,通常情况下直接浏览这个目录会列出所有安装的插件名,这很糟糕,因为黑客可以利用已知插件的漏洞进行攻击,因此可以创建一个空的index.html文件放到这个目录下,当然,修改Apache的.htaccess文件也可以起到相同的作用。

    6、保护wp-admin文件夹

    你可以通过限定IP地址访问WordPress管理员文件夹来进行保护,所有其他IP地址访问都返回禁止访问的信息,不过你也只能从一两个地方进行博客管理。另外,你需要放一个新的.htaccess文件到wp-admin目录下,防止根目录下的.htaccess文件被替换。

    7、针对搜索引擎的保护

    很多WordPress系统文件不需要被搜索引擎索引,因此,修改你的robots.txt文件,增加一行Disallow: /wp-*

    8、安装Login Lockdown插件

    这个插件可以记录失败的登录尝试的IP地址和时间,如果来自某一个IP地址的这种失败登录超过一定条件,那么系统将禁止这一IP地址继续尝试登录。

    9、WordPress数据库安全

    数据表最好不要使用默认的wp_开头,安装数据库备份插件,无论做了多少保护,你还是应该定期备份你的数据库,使用WordPress Database Backup等插件可以实现数据库的定期备份。

    10、安装Wordpress Security Scan插件

    这个插件会自动按照以上的安全建议对你的WordPress进行扫描,查找存在的问题,使用较为简单。

  • Mysql较大数据库的备份与导入

    前两天写了一篇WordPress完美备份数据方法及教程 ,反响不错,评论中有朋友提到了帝国备份王,而且在完备备份数据的过程中,如果遇到较大的数据库,比如超过10M的话,可能很多新手又不知所措了,今天就通过另外一个工具来解决较大数据库的备份和导入问题。

    帝国备份王的使用方法可以看Wopus以前的一篇文章:如何进行Wordpress的日常备份 。

    简单介绍一些帝国备份王:

    帝国备份王,帝国备份王是一款完全免费、专门为Mysql大数据的备份与导入而设计的稳定高效软件,系统采用分卷备份与导入,理论上可备份任何大小的数据库.

    帝国备份王解决MYSQL备份三大难题:

    1、解决备份大数据问题,采用分组备份,备份稳定高效;
    2、解决备份数据编码乱码问题,备份王智能识别编码;
    3、解决不同MYSQL版本数据不能互导问题,通过备份王不存在数据版本区别。

    帝国备份王的具体地址:http://www.phome.net/ebak2008os/

  • WordPress完美备份数据方法及教程

    注:此文章针对新手,高手请飘过。

    这篇文章中的备份WordPress的数据方法是最好的方法,所以建议各位今后再备份WordPress数据的时候都使用这个方法。

    日常大家使用写博客,数据主要分两个部分,一个是文字部分的;一个是附件部分,比如图片,音频,视频等。文字都被写进了Mysql里,由于音频和视频都比较大,所以一般都外链,真正存储的就只有图片了。图片存储的位置是:/wp-content/uploads目录,所以在备份的时候,我们只要把wp-content文件夹和Mysql数据库里的内容备份就好了。

    提示:只所以要备份wp-content文件夹而不备份uploads,是因为除了附件,大家平常肯定也都有使用不同的主题和一定数量的插件,而主题,插件和日常上传的附件,都是在wp-content目录里。

    备份方法:

    wp-content备份方法:WopusIDC的主机当前主要使用Cpanel和DA两种控制面板,方法都是通过主机控制面板,勾选目录,压缩wp-content文件夹,然后下载,保存。当然也可以通过ftp完成。

    Mysql数据库的备份方法:我们以Cpanel为例,首先在Cpanel里找到Phpmysql管理,点击进入:

    1

    点击进入:

    2

    这就是Mysql,我们就是需要进入这里备份数据。

    WordPress安装成功之后会生成10个数据表,点击我隐藏的这个数据库,到这个界面,然后按步骤1,2操作:

    3

    点击“导出”之后到这个界面,各位在备份的时候按我的操作来就可以了,没提及的就默认不需要修改。

    4

    点击“执行”之后提示有数据下载,下载数据就好了。

    到此,WordPress数据备份就算完成了,既然有备份,也就有导入,WordPress的数据导入完全是和备份逆向的,把备份的wp-content文件夹上传覆盖原来的,重点讲一下数据的导入。

    再数据导出的旁边有一个“Import”,这就是导入的意思,点击进入这个页面:

    5

    找到刚才备份下来的数据,然后选中之后,点击执行,这样就完成了数据的恢复。

  • 让WordPress达到最高性能的13个优化技巧

    性能是任何成功网站的一个关键因素。越来越多的人选择使用WordPress搭建个人博客、CMS内容展示或是企业网站,但可能由于高流量或一些未知的原因,导致你的WordPress性能越来越低,尤其对于大多数主机质量一般流量却很高的个人站长来说。

    本文里,我们就为你介绍一些你可能还不知道或是没有发现的WordPress优化技巧,彻底的学习并贯彻实施它们,能大幅度的提高你的WordPress整体性能。

    首先,看一些简单基础的WordPress优化步骤。

    1. 升级到最新版本的WordPress

    相对于之前的版本,WordPress 2.7 拥有许多性能改善,可以预见的是,以后的版本也会在这方面加强。所以随时保持 升级 到最新版本WordPress是一个简单实用的优化步骤。

    2. 移除多余的插件和保持插件为最新版本

    移除任何你并不使用的Wordpress插件. 禁用它们并从你的Web服务器上删除它们. 禁用它们是因为WordPress程序会检查一个插件是否启用, 如果你根本不需要那个插件,何必浪费WordPress的时间,更浪费你服务器的时间.

    同时,保持你正在使用的插件为最新版本也是很重要的. 很多插件的更新并没有加入新的功能,但这并不代表你就没必要更新。插件的更新里面可能对一些代码进行了优化,能让插件运行的更加良好,同时也让你的整个WordPress站点提高性能。

    3. 减少PHP和数据库查询

    Wpcandy发布过一篇 simple ways to speed up WordPress(提速WordPress的简单方式) . 详细的介绍了如何减少PHP和数据库查询.

    简单的说,把能用HTML直接输出的代码就直接用HTML输出,而不是PHP。比如打开你WordPress主题的header.php,什么字符集声明,feed地址等等,很多东西都是可以把PHP代码直接换成静态HTML的。

    在帕兰映像里面,我甚至把分类,页面输出这些都直接用HTML。当然,并不建议你也这样,也得根据实际情况和不同需求。你只要记住,那种固定不变或很久才变一次的内容,完全可以用HTML代码替换掉。

    提示: 如果你是做一个公开发布的WordPress主题,千万别这么干,因为它可能并不适用于每个用户。

    4. 优化和修复你的数据库(从phpmyadmin)

    你应该定时(每周或每半个月)登录一下你的phpmyadmin,然后对你的各个WordPress表进行优化和修复,很简单,你只需要选中这些表,然后进行”Optimize table”和”Repair table”即可。(如果要慎重起见,你最好还是同时备份一下你的数据库。安全和性能同时抓,何乐而不为?)
    wordpress_speed_5

    照顾好你的图像

    5. 使用可靠的图像存储服务

    尝试把你常用的Web图像,CSS和Javascript等存储到Amazon S3 Storage service ,这里是一个教程: this step by step guide.
    注: Amozon S3存储服务是收费的,一般博客当然不会用。如果你的流量确实很高或者是企业级网站,那相对之下,它的收费算蛮便宜的了。
    你还可以尝试 WP-Offload这个WordPress插件, 它可以提高你的博客性能。(注: 我也没用这个插件,有兴趣的朋友可以去下了研究一下。)
    提示: 如果你是那种选择把图片放到第三方存储服务的人,真的要谨慎选择。试想一下,把图片存在你的主机上造成流量消耗当机但你的图片还在,你后期的修复整理也容易。如果把图片存放在第三方存储服务,而这个服务又非常不靠谱,一会儿免费,一会儿收费,一会儿又直接把你整个帐户都封了。这时候就算图片还在,你网站中原来的图片引用都失效,你需要花大把的时间去搞定这件事。

    所以我给你的建议就是: 要么选择一个非常优秀的收费存储服务,储如Amozon S3。要么买个超强的主机。要么宁可存在自己的主机上,不管这个主机性能如何。

    6. 使用工具优化你的图像

    Shrink O’Matic 是一个 AIR 应用程序,它可以让你轻松的改变图像大小. 支持 JPGs, GIFs 和 PNGs. 只需要简单的拖拽即可实现。

    注: 原文里推荐的这个工具,还有很多类似的软件啦,大家自己找找。在使用之前,明白哪种图像格式能让图像Size更小,追求图像质量还是最高压缩等等都是非常重要的。相关知识自己去Google吧。

    更深入的WordPress性能提高

    7. 安装WordPress Super Cache插件

    WordPress Super Cache插件绝对优秀,不多做介绍,大多数WordPress用户都应该比较熟悉,用过便知。只是使用之后也会有些后遗症很难处理,比如一些需要跟踪确认广告代码的广告商,会无法跟踪到。网上也有一切解决方法,但我还没见过很完美的。

    8. PHP Speedy WP

    PHP Speedy是一个PHP脚本库,主要适用于调用了很多JS文件和CSS文件的PHP网站。而PHP Speedy WP 就是专为WordPress用户方便操作的插件。如果我们使用了很多插件,在head头部里面会有很多的js和css文件调用,使用这个插件,能加快这些东西的载入速度。

    9. WP CSS

    WP CSS也是一个WordPress插件。它可以gzip压缩和移除你CSS文件中的空白区。还有缓存什么什么的。(这个我也还没用过,具体功能还不也解,有兴趣的朋友去试试。)

    10. DB Cache

    DB Cache数据库缓存。此插件缓存每个数据库查询。这是非常快的,并使用小型磁盘空间缓存。我也没有尝试过这个插件,不过有很多WordPress用户推荐过这个插件。

    11. 通过Ajax Libraries API加速你的脚本框架载入

    简单讲,调用Google Code里面的大型框架 – Ajax Libraries API。对这些框架的载入,让Google的服务去承担:) 常用的有:

    调用方法就不必介绍了吧。这里重点补充分享我个人的一些看法: 不要一味跟风的使用特效。

    Javascript, Ajax尤其是后生可畏当下火热的jQuery库让我们可以创建很多漂亮的效果。但在我看来,为了提高浏览体验、网站规划布局等实用的特效才值得去使用。也就是说,你使用这个特效,目标应该是提高可用性,而不是单纯为了视觉。(当然,这主要是对于大多数网站来说,尤其是流量很高更需要提高性能的网站)。

    比如我认识的一些朋友,看见”点击滑动锚链接至目标区域”的特效很好看,就非得给自己用上。也不管这个特效有多大,就为了这个特效,调用一个jQuery框架。或者是明明几行js就可以搞定的tabs内容,就为了让它滑动的时候好看点,就又添加上几十KB的JS。而事实上,这些特效就真的提高浏览体验了?

    javascript, ajax, jquery等等都是伟大的Web开发技术, 这根本质疑不了。但用的时候权衡利弊是很重要的。

    12. 显示页面载入时间和查询次数

    在主题的底部加入显示载入时间和查询次数的信息,能有助于你也也解你自己博客的性能情况。而通常,这个信息是没必要出来的。所以你可以使用下面的代码:

    这个代码被注释掉了。你要查询的时候,查看源文件即可。没必要显示出来,应该不会有多少访客有兴趣了解你的WordPress性能。

    13. Optimize DB

    又是一个优化Mysql数据库的插件 – Optimize DB。且它的使用很简单,点击一下优化按钮即可。

  • 在WordPress的Feed中插入广告

    实现方法很简单,只需要将下面的代码放到function.php里即可:

    < ?php
    function insertAds($content) {
        $content = $content.'
    广告位置
    '; return $content; } add_filter('the_excerpt_rss', 'insertAds'); add_filter('the_content_rss', 'insertAds'); ?>

    使用原理:
    我们首先建立一个函数 insertAds() 这个函数包含一个内容,就是盛放广告代码的 $content ,接着使用 add_filter() 重写 the_content_rss() 然后重新利用 the_excerpt_rss() 输出 Feed 内容。

  • WordPress 提速之 Gzip 压缩

    今天来聊下 wordpress 提速,其实关于这方面的话题网上其实蛮多的,速度对一个网站来说无疑是非常重要的,对于速度的追求也是无止境的,在这方面的表率无疑就是 shawn 了,看他博客的很多技巧都是针对速度来的……不过话说回来,速度也不是绝对的,看很多优秀的博客速度并不占优,有时候追求速度难免还会牺牲一些其它的东西!!此文仅供参考。

    废话少说,关于 wordpress 的提速还是可以从很多方面入手的,因为 WP 的灵活而导致其效率和速度的下降,比如因为使用插件而在头部载入的 N 多的 JS 和 CSS 就是最为典型的,就不展开说了,今天我们只说 Gzip!

    什么是 Gzip 压缩,为什么要用 Gzip 压缩

    说白了就是一种压缩的技术,它将浏览器请求的文件在服务器端进行压缩,然后将文件以压缩的形式传递给浏览器,然后在浏览器端进行解压缩,还原后进行解析。而目前 99% 的浏览器都支持 Gzip ,包括 IE 4+, Netscape 4+, Opera 5+ 和所有版本的 Safari 和 Firefox ,所以大家可以放心使用。

    在这里我们的压缩对象是所有的 html、JS、和 CSS 。而他的压缩效率惊人,能减小 60% 到70%。像我的博客一个 10K 的 JS 文件,用 Gzip 压缩后浏览器接收的只有 3K 大小,16K 的 CSS 文件也被压缩到了 5K,很强大吧!

    怎么知道我的页面是否 Gzip 压缩过了

    Gzip 的方法有很多种,而有很多的服务器是默认开启 Gzip 压缩的,不过据我所知,这种服务器少之又少。怎么确定自己的网页是否被 Gzip 呢!!这种测试的网站网上也很多,不过一般只能测试 html,这里推荐给大家一个测试的网站:Websiteoptimization,输入网址后,输入验证码,就会给出你的 Web Page Speed Report.

    gzip

    貌似很多的“童鞋”看错了,现在补图上来!!其中在下面的 Page Objects 中,会给出所有所加载的文件的信息。在最后一栏的信息中,如果显示:Congratulations! This file was compressed. 说明是被压缩过的,如果是:Up to **** bytes could have been saved through compression,显然是还没被压缩的。

    启用 Gzip 的几种方法

    是的,有几种方法,是针对不同的情况的。

    1、最好的情况是你的主机采用的是 Apache 2,并安装启用了mod_deflate 模块。这样就很简单了,只需要在 .htaccess 文件中加入以下代码可以压缩 HTML, PHP, JS, CSS, XML 后缀的文件。
    <ifmodule mod_deflate.c>
    AddOutputFilterByType DEFLATE text/html text/css text/plain text/xml application/x-httpd-php application/x-javascript
    </ifmodule>

    不过一般的主机都没有这个模块,如果你是独立主机可以自行配置。至于如何检测自己的主机是否有安装这个模块,我还真没找到办法,望高手指点。如果大家有兴趣,可能将上面的代码加好,看是否 Gzip 来试一下!以上方法来自:我爱水煮鱼
    <?php
    $allowed = array (
    'css'=>'text/css',
    'js'=>'text/javascript',
    'html'=>'text/html',
    'htm'=>'text/html',
    );
    $file = isset ($_GET['url'])?$_GET['url']:null;
    $extension = explode('.', $file);
    $extension = array_pop($extension);
    if ( isset ($allowed[$extension]))
    {
    $pos = strpos($file, '..');
    if ($pos === false && is_file($file))
    {
    @ob_start('ob_gzhandler');
    header("Content-type: {$allowed[$extension]};
    charset:UTF-8 ");
    readfile($file);
    }
    else {
    header('HTTP/1.1 404NotFound ');
    }
    }
    ?>

    2、用 PHP 来压缩

    此方法也需要 PHP 模块 zlib 的支持,不过这是一个基本的模块,一般都开启了!!所以我们主要讲下这部分。

    用 PHP 压缩动态页面

    我们先来看所谓的 html 的压缩,其实也就是由 PHP 动态生成的 html 。这样的方法有很多,我用的是 shawn 的方法 ,还有 几种方法 供参考。

    用 PHP 压缩 JS 和CSS

    关于 JS 和 CSS 的压缩也有几种方法,目前比较多的是像 K2 学习,将 JS 和 CSS 改为 .php 的方法。这个前辈已经介绍过了,请移步:简述对WP博客样式表和JS脚本的压缩

    这种方法的缺点是要修改每个 JS 和 CSS 文件,有点不太方便。对于将所有插件中的 JS 和CSS 都合并的博客来说还算容易,但没有合并的来说无疑是一项巨大的工程,而且插件更新也是件麻烦的事。另外看着好好的 CSS 文件变成了 PHP ,看着挺怪的,呵呵!!好处是有好的适应性,因为这 K2 用的方法!

    第二种方法是老N提供的方法:加速blog,压缩js,css,减省带宽 ,这种方法应该说比较简单,而且默认对所有的 JS 和 CSS 生效。原理就是把 JS 和 CSS 利用 .htaccess 交给一个 PHP 文件来处理进行压缩。

    老N那的代码貌似复制出来有些问题,我再贴一下,呵呵:

    1、创建 gzip.php 文件并上传到博客根目录,代码如下:

    下载: gzip.php

    2、更改.htaccess文件,在.htaccess中添加:

    RewriteCond %{REQUEST_FILENAME} -f
    RewriteCond %{REQUEST_FILENAME} ^.*.(css|js|html|htm)$
    RewriteRule ^(.*)$ gzip.php?url=$1 [QSA,L]

    就 OK 了~,的确很简单

    但上面两种方法还有一个问题,就是会吃服务器的资源,占用一定的 CPU 和内存,因为每次访问页面都要执行一下。但具体吃到什么程度,我就不清楚了,据说在服务器资源紧张的情况下压缩的效率会比较低,不过我想一般大型的主机提供商的主机还是不会有什么问题的。

    第三种我们来看 辐射鱼提供的方法

    1. 下载 Gzip.php 文件并上传到你的Wordpress安装目录

    2. 在你的 WordPress 根目录建立 wp-cache 文件夹并确保其可写入

    3. 在.htaccess里面加上
    RewriteRule (.*.css$|.*.js$) gzip.php?$1 [L]
    即可

    也非常的简单,而且此种方法的优点是:自动读取并 gzip 压缩 css 和 js,访问时直接调用生成的 .gz 文件,节约带宽也不占用服务器资源,但不适用空间下安装了多个 WordPress 的博友,可能导致二级目录下的某些 WordPress 无法加载 CSS 样式。这些都是辐射鱼的原话,呵呵!另外就是当 CSS 和 JS 有更新时要手动清除缓存才行。符合条件的同志推荐用这种方法!!

    终于写完了,看来目前还没有很完美的解决方案,大家可以根据自己的实际情况来选择用哪种方法,以上资料仅供参考,有问题请留言!!

  • WordPress函数详解之Wp_list_authors

    感谢Lia的投递,文章已经很久了,今天虽然今天发出来,但这确实是一篇值得看的文章。 (more…)