wordpress网站缓存怎么优化

wordpress网站缓存怎么优化,第1张

1、使用高效的缓存插件

WordPress的插件们是非常有用的, 我推荐一款缓存插件可以改善页面载入时间,它就是W3 Total Cache,有了这个插件之后咱就不再推荐你其他缓存插件了,因为所有缓存插件有的功能它都有了,而且安装和使用非常方便。

拥有这款插件之后,你的页面载入速度会加快,因为网站的主要元素已经被缓存了。

2. 使用内容分发网络 (CDN)

基本上所有你喜欢的大网站都会使用CDN。简单来说,CDN是把你站点上的文件们(CSS\JS\图片等)发布到最接近用户所在的网络区域,让用户就近下载,这样就能提高站点运行速度。在国内ChinaCache是比较有名的CDN供应商,不过价格贵了一些,像各大门户网站,比如腾讯、新浪、网易等等都是用ChinaCache。所以不管你在哪里,访问这些门户网站都会觉得速度很快。当然啦,对于小站来说,这个成本可能会高一些,

所以,你无论是在南方,或者北方,还是在北美,访问这些门户网站,感觉速度都很快,最主要的原因之一就是CDN发挥了效果。一般小网站是用不起这服务的,所以慢点就慢点了吧,可以租用互联互通的6线机房(6线机房是指包括网通、电信、铁通、移动、联通、教育网等多线接入的骨干网IDC机房,彻底消除各地网络瓶颈,保证互联网访问畅通无阻的高速机房。)

顺便提一下,还有一个Wordpress插件叫Free-CDN,号称也能达到类似的效果,虽然我还没有做过测试…

3、图片优化很重要

Yahoo! 有一个图片优化软件叫Smush.it可以最大程度无损压缩图片,不过,除非你超级有耐心,否则一张张压缩图片的话太浪费时间了,好在,还有一个很给力的WP插件叫WP-SmushIt,这货可以为你网站上所有的图片做一次性压缩,所以没有理由不去用它。

4、优化你的WP数据库

你可以用WP-Optimize这个插件来优化你的WP数据库(清理spam,反复改版的文章,草稿,表格等等为你的服务器腾出更多空间从而提升效率);还有一些插件如WP-Cleaner,DB-Manger等。

5、开启防盗链机制

盗链是带宽的窃贼,当其他网站直接引用你站点的图片的时候,这会影响占用你本身的服务器资源从而影响网站运行效率,你的站点越出名,就会有越多的人盗用你的图片,解决方法是Wordpress有现成的插件Hotlink Protection。当然也可以通过重写htaccess文件来达到同样的效果,欲深入了解的童鞋可以询问自己的空间商如何设置。

6、为文件添加过期时间

关于这个文件过期时间,听起来很玄乎,其实就是通过header报文来指定特定类型的文件在浏览器中的缓存时间。有些文件(例如样式表中调用的背景图片和一些装饰性图片)其实在很长一段时间内这些图片都不会有很大的变化,所以对这类文件我们不妨设置长一些的缓存时间,这样浏览器就不需要每次从服务器下载这些文件而直接从缓存中读取,这样绝对可以提升加载速度。

当然,所以做法很简单,只需要在网站的.htaccess文件中加入以下代码,

<IfModule mod_expires.c>

ExpiresActive On

ExpiresDefault A600

ExpiresByType image/x-icon A2592000

ExpiresByType application/x-javascript A604800

ExpiresByType text/css A604800

ExpiresByType image/gif A2592000

ExpiresByType image/png A2592000

ExpiresByType image/jpeg A2592000

ExpiresByType text/plain A86400

ExpiresByType application/x-shockwave-flash A2592000

ExpiresByType video/x-flv A2592000

ExpiresByType application/pdf A2592000

ExpiresByType text/html A600

</IfModule>

稍微解释一下,text/css表示样式表文件,text/plain代表的纯文本类文件,依次类推。其中A2592000就表示这种类型文件在浏览器中的缓存时间,以秒为单位。一天86400秒,2592000就表示这类文件可以缓存30天。

如果你不是经常修改模板,那样式表文件和javasctipt文件基本上也可以设置缓存一周到一个月左右。text/html文件不要设置太长的缓存时间,因为这些东西修改的频率很高,一天更新一次是有必要的。

7、为你的图片添加延时加载

延时加载就是当用户停留在第一屏的时候,不加载任何第一屏以下的图片信息,只有当用户把鼠标往下滚动的时候,这些图片才开始加载。这玩意儿不仅可以提升站点载入速度,更是可以节省带宽。要轻松的拥有这项功能,请安装WP的jQuery Image Lazy Load 插件吧。

8、控制文章草稿存数数

通常一篇博文我会保存10次以上的草稿,而Wordpress会无限制的存储每个草稿;如果我的博文已经发布了,为啥我还需要这些储存的草稿文章呢?所以这就是为啥我会用 Revision Control 插件来确保这些草稿内容的最小化。通常我会设置只存储2-3篇草稿来防止万一,但存储的数量绝对不会太高,否则你的WordPress backend只会被这些无意义的内容塞满从而降低运行效率。

1、 在comments.php评论表单中添加自己想要的字段,如:

<p>

<input type="text" name="tel" id="tel" size="22" tabindex="4" />

<label for="tel">电话</label>

</p>

tabindex 这个属性按照从小到大排,为什么要这样?你可以自己试试….

2、如果评论表单是使用系统自带的,那么请用以下方法添加表单字段,如果不是,请略过

add_filter('comment_form_default_fields','comment_form_add_ewai')

function comment_form_add_ewai($fields) {

$label1 = __( '国家/地区' )

$label2 = __( 'Skype账号' )

$label3 = __( '电话' )

$label4 = __( '传真' )

$label5 = __( '地址' )

$value1 = isset($_POST['guojia']) ? $_POST['guojia'] : false

$value2 = isset($_POST['skype']) ? $_POST['skype'] : false

$value3 = isset($_POST['tel']) ? $_POST['tel'] : false

$value4 = isset($_POST['fax']) ? $_POST['fax'] : false

$value5 = isset($_POST['address']) ? $_POST['address'] : false

$fields['guojia'] =<<<HTML

<p>

<label for="guojia">{$label1}</label>

<input id="guojia" name="guojia" type="text" value="{$value1}" size="30" />

</p>

HTML

return $fields

}

3、 接收表单字段并写入数据库

在主题目录的 functions.php添加以下代码

add_action('wp_insert_comment','wp_insert_tel',10,2)

function wp_insert_tel($comment_ID,$commmentdata) {

$tel = isset($_POST['tel']) ? $_POST['tel'] : false

//_tel 是存储在数据库里的字段名字,取出数据的就会用到

update_comment_meta($comment_ID,'_tel',$tel)

}

这两步就可以将数据写入数据库了,不信你试试看

add_action()参数中的10和2分别表示该函数执行的优先级是10(默认值,值越小优先级越高),该函数接受2个参数。

4、在后台显示额外字段

前面两步只是接收和写入到数据库,那么要怎么在后台评论列表中显示呢?将以下代码复制到主题目录的functions.php 中:

add_filter( 'manage_edit-comments_columns', 'my_comments_columns' )

add_action( 'manage_comments_custom_column', 'output_my_comments_columns', 10, 2 )

function my_comments_columns( $columns ){

$columns[ '_tel' ] = __( '电话' ) //电话是代表列的名字

return $columns

}

function output_my_comments_columns( $column_name, $comment_id ){

switch( $column_name ) {

case "_tel" :

echo get_comment_meta( $comment_id, '_tel', true )

break

}

如果要在前台的留言列表中调用,就用以下代码,_tel就是你在数据库中存储的字段名字

<?php

$tel = get_comment_meta($comment->comment_ID,'_tel',true)

if( !empty($tel)){

echo "电话".$tel

}

?>

5、 大功告成,看看后台的评论列表,是不是多了一列电话,那样的话就没错了。

6、如果要移除某一个自带的表单字段,可以使用以下代码

function tel_filtered($fields){

if(isset($fields['tel']))

unset($fields['tel'])

return $fields

}

add_filter('comment_form_default_fields', 'tel')

WordPress加速已经不是什么新鲜话题了,曾在一站长论坛里看到一篇关于WordPress提速的文章,讲了很多的方法,用了一大堆插件,可能是想把WordPress加速做到极致吧。但读完后却是一头雾水,我觉得这样往往适得其反。

这里,我说一下个人感觉一些高效可行的方法:

一.图片加载延迟

即图片岁下拉滚动条依次显示,这样在很大程度上得到了提速,尤其是图片比较多的站。方法很简单,自己去网上搜索一下,非常的多。

二.图片本地缓存

包括JS、Flash等,把这些元素缓存后,用户第二次再去访问你的站时,那速度将是秒开。推荐使用.htaccess缓存图片,方法:直接在.htaccess中添加如下代码:

# Image and Flash content Caching for One Month<FilesMatch “.(flv|gif|jpg|jpeg|png|ico|swf)$”>Header set Cache-Control “max-age=2592000″</FilesMatch>

这里说一下,WordPress评论者头像gravatar,大家可能感觉到了,Gravatar明显会拖慢 网站速度,以至于一些博客不让显示Gravatar头像或用神秘人代替了。也有一些站点追求比较苛刻,本地化了Gravatar头像,后者我不推荐,尤其 是网站评论较多,那将给服务器带来巨大的压力。

三.开启wordpress的GZIP

首先你可以用站长工具检测一下代码是否有必要压缩

http://tool.chinaz.com/Gzips/Default.aspx

开启gzip方法也很多,

方法1:使用gzippy插件,直接安装启用即可。

方法2:在Cpanel面板中实现

C面板中有个 Optimize Website 图标,点击进入后选中 Compress all content,Update settings即可开启我们的网站加速功能~当然,我们也可以根据自己的需要,选择第三项,压缩指定的类型以节约服务器资源。

方法3:通过.htaccess实现,加入规则:

<ifmodule mod_deflate.c>

AddOutputFilterByType DEFLATE text/html text/css text/plain text/xml application/x-httpd-php application/x-javascript

</ifmodule>

四:静态化页面减少对数据库的查询

wp super cache插件 它把整个网页直接生成 HTML 文件,这样 Apache 就不用解析 PHP 脚本,通过使用这个插件,能使得你的 WordPress 博客将显著的提速。

当然,如果你不静态化页面,也可以缓存数据库,DB cache插件比较不错。

小结:

如果这四大方法你都用上了,那你的WordPress速度提升基本已经发挥的淋漓尽致了,最后我们要注 意一下,经常在打开你博客的时候,观察状态栏的加载情况。见过一些站,因为使用了外部JS结果那个站点挂掉的时候导致自己的站点整个都打不开。还有就是经 常清理和优化你的数据库,这一点是至关重要的,数据库在查询中产生碎片,WordPress在运行时也会残留一些垃圾,尤其是代码高亮插件和 WordPress自动保存功能。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/6700900.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-03-27
下一篇 2023-03-27

发表评论

登录后才能评论

评论列表(0条)

保存