全球主机交流论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

CeraNetworks网络延迟测速工具IP归属甄别会员请立即修改密码
查看: 2768|回复: 9
打印 上一主题 下一主题

[疑问] 【加速】新VPS装WordPress后的优化——主题代码静态化

[复制链接]
跳转到指定楼层
1#
发表于 2014-10-17 00:51:39 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 seajoyour 于 2014-10-17 02:08 编辑

新买的VPS装好lnmp或者lamp环境往往什么都没有优化,装上WP还是很舒服的,不过,用着用着就感觉到很慢,于是,这篇文章或许能解决一些问题。文章发布于2011年。
必要点:网站开启Gzip,小图片尽力使用CSS sprite图,JS/CSS压缩+整合一个文件,JS放置主题footer部分(参考Themeforest的大部分主题),WP的静态化插件很重要,许多时候是百度、Google的JS拖慢整个加载速度,服务器不给力可以用cdn弥补,这些都不行,那就看下面吧。
009-59c2844dcabb48784bddab8eac797ee8.jpg (188.45 KB, 下载次数: 0)
所谓的WordPress主题代码静态化,就是将WordPress主题中的动态代码用静态内容代替,可能你不知道什么是动态代码,那就先思考个问题:为什么同一个WordPress主题,用在我的博客上标题显示的是”xx博客”,而用在你的博客上显示的却是其他标题呢?答案就在于主题中的动态代码,它会根据不同的使用者,不同的使用环境,甚至不同的时间来显示不同的内容。但是如果这个主题只是用在你的博客上,那么很多东西都是固定不变,如博客标题,你不再需要主题去动态显示这些静态内容,而且动态代码往往比静态内容消耗更多时间。

     知道了什么是动态代码,下面让我介绍一下如何将你的主题代码静态化。需要注意的是,静态化后的主题就只能用于你的博客了,如果域名等其他信息变更后还要重新修改代码;开始之前,你最好准备一个能够同时修改搜索多个文件的文本编辑器,如UltraEdit,这样会更方便一些,因为同一段代码在主题的多个文件中都会出现,没有这类编辑器也没关系,但是不要用Windows自带记事本改;另外,如果你修改代码后,有中文的话请用UTF-8保存。

最后在介绍一下本文的编排规则,下面每个绿色的主标题下面都会有一些加粗的代码,这些都是需要替换的动态PHP代码,你可以打开主题文件夹下的所有.php文件,查找这些代码然后按说明替换掉,例如第一条提供的<?php language_attributes(); ?>,因为不同主题代码中使用的空格数量和参数等不太一样,所以直接搜索上面这段代码可能搜不到,你可以只搜索language_attributes,还有问题可以给我留言。废话说多了,抱歉!下面正题开始:

一、网页语言属性声明

<?php language_attributes(); ?>这个函数用于声明网页所使用的语言,一般出现在header.php这个文件开头,如果你的主题是用于中文站点,而且文字方向是从左往右读,你可以用以下静态内容代替加粗的那段代码:dir="ltr" lang="zh-CN"

修改后的代码类似:<html dir="ltr" lang="zh-CN">

二、bloginfo() 博客信息函数

这个函数有很多个参数(就是括号中的内容),传递不同参数可用于输出不同的博客信息,具体每个参数输出的内容,可以看一下文档:模板标签-bloginfo。下面捡几个常见的说一下:

<?php bloginfo(‘name’); ?>用于输出博客的”站点标题”,至于站点标题,可以在WordPress后台 – 设置 – 常规那里找到,将这段代码全部替换成你的”站点标题”即可;

<?php bloginfo(‘description’); ?>用于输出博客的”副标题”,可以在WordPress后台 – 设置 – 常规那里找到,将这段代码全部替换成你的”副标题”即可;

<?php bloginfo(‘url’); ?>用于输出博客的”站点地址(URL)”,可以在WordPress后台 – 设置 – 常规那里找到,将这段代码全部替换成你的”站点地址(URL)”即可;

<?php bloginfo(‘stylesheet_url’); ?>用于输出博客的”style.css文件的网址”,如果你不知道这个网址是什么,可以打开你的博客主页,然后用浏览器的”查看源代码”功能来查看网页的源代码,查找style.css,应该可以找到http://example/wp-content/themes/default/style.css,用这个网址替换掉这段代码即可;

<?php bloginfo(‘stylesheet_directory’); ?>用于输出博客的”style.css文件所在的目录”,也就是上面style.css网址去掉/style.css,如http://example/wp-content/themes/default,记住后面没有 / ;

<?php bloginfo(‘rss2_url’); ?>用于输出你的feed的网址,一般形式如: http://example/feed/,如果你用Feedsky之类的托管了feed,可以用Feedsky提供的网址代替;

<?php bloginfo(‘pingback_url’); ?>用于输出你的pingback的网址,一般形式如: http://example/home/wp/xmlrpc.php,查看源代码,查找rel=”pingback”,可以找到这个网址;

<?php bloginfo(‘charset’); ?>这个函数用于声明网页的编码,一般出现在这个文件开头header.php,这个编码可以在WordPress后台 – 设置 – 阅读,最后一个选项”页面和 feed 编码”那里设置,一般都是 UTF-8,你可以这段代码替换成:UTF-8

<?php bloginfo(‘version’ ); ?>用于输出WordPress的版本号,但是鉴于安全原因,不建议使用该函数,你可以将该段代码替换成不存在的版本号,在一定程度上还可以起到迷惑的作用。
转载自 http://www.91ai.net/forum.php ... p;page=1#pid3454437
三、get_option() 博客信息函数

这个函数跟bloginfo()一样可以输出很多博客的信息,只是它不会直接打印出来,而是作为变量值来传递。这个函数的参数也是跟牛毛一样多,这里也没法一一说完,具体的所有参数可以参见文档(英文):Option Reference,另外get_settings()这个函数跟get_option()是完全一样的函数,get_settings一般会出现在一些比较老的主题中。你可以在主题目录下的.php文件中查找get_option,应该可以找出很多个,下面还是捡几个常见的说说:

get_option(‘home’)这个用于获取博客主页的网址,需要注意的是这个函数的所有参数形式都不能像上面的bloginfo()那样用网址直接代替,因为它不直接输出值,而是要用引号括起来代替。如:你可以将echo get_option('home');替换成echo 'http://www.ludou.org/';,如果是<?php echo get_option('home'); ?>,你可以直接将这段代码直接替换成http://www.ludou.org/,这都是一些简单的PHP编程方式,相信下面说的内容你也可以举一反三了。
转载自 http://www.91ai.net/forum.php ... p;page=1#pid3454437
get_option(‘blogname’)用于获取博客名称。

get_option(‘blog_charset’)用于获取页面的编码,如UTF-8。

四、get_bloginfo() 博客信息函数

要不是写这篇文章,我也不会知道WordPress有这么多个函数可以用于获取博客信息,而且都是差不多的功能,说实话我有点想不通!这个函数的替换方法跟get_option()是一样的,这里我就不详细讲了,具体参数说明详见:get_bloginfo()
转载自 http://www.91ai.net/forum.php ... p;page=1#pid3454437
五、汉化主题代码
003-1d0c5f2925df29c8a6510b2e4d7fb18e.jpg (139.12 KB, 下载次数: 0)
很多主题因为要考虑到国际应用,所以都用了翻译函数 _e() 和 __() 等,这样做可以适应不同语言区的用户,可以方便他们自行制作语言包,考虑到我们的博客都是中文的,而且这些内容都是静态化,我们可以给我们使用的主题来一次汉化,WordPress就不会去检索语言包了,在一定程度上还可以加快WordPress的速度。具体方法,可以参见:WordPress主题插件汉化教程中的方法二。

6、作者函数

如果你的博客只有你一个人在写,那就将这些输出作者信息的函数都换成你自己的信息吧。

<?php the_author_posts_link(); ?>用于输出作者存档页的网址,你可以用以下代码代替这个函数:
转载自 http://www.91ai.net/forum.php ... p;page=1#pid3454437

<a href=“作者存档页的网址” title=“由 XX 发表”>作者昵称</a>
<?php the_author(); ?>用于显示作者的昵称,你可以直接用作者的昵称替换这段代码。

get_the_author();用于获取作者的昵称,你可以用以下内容替换这段代码:'作者昵称';

<?php the_author_link(); ?>用于输出作者的网址URL,跟the_author_posts_link函数功能是不一样的。你可以用以下代码代替这段代码:
转载自 http://www.91ai.net/forum.php ... p;page=1#pid3454437

<a href=“作者网站的网址” title=“查看 XX 的站点”>作者昵称</a>
六、侧边栏静态化

如果你的侧边栏不需要后台的提供的小工具,或者你喜欢直接用代码来实现侧边栏的某些效果,那么你可以删除sidebar.php中的动态调用小工具的代码,前提是你懂HTML、PHP编程。

<?php if ( !function_exists(‘dynamic_sidebar’) || !dynamic_sidebar(‘north_sidebar’) ) : ?>

<?php endif; ?>
你可以在***所在的位置添加你自己的侧边栏的代码,添加成功后你可以将
<?php if ( !function_exists(‘dynamic_sidebar’) || !dynamic_sidebar(‘north_sidebar’) ) : ?>

转载自 http://www.91ai.net/forum.php ... p;page=1#pid3454437
<?php endif; ?>
删除,这样WordPress就不会去检测你的小工具了,当然你也不能在后台添加小工具了。


$.list.jpg (27.48 KB, 下载次数: 0)

评分

参与人数 1威望 +21 收起 理由
欧阳逍遥 + 21 技术贴要加分,求尾图套图。。.

查看全部评分

2#
发表于 2014-10-17 00:53:09 | 只看该作者
+ 1  技术贴
3#
发表于 2014-10-17 01:08:18 | 只看该作者

+ 10086 技术贴
6#
发表于 2014-10-17 08:10:33 | 只看该作者
+ 10086 技术贴
7#
发表于 2014-10-17 08:56:06 | 只看该作者
wp负载差是公认的 瓶颈在mysql

比如我现在用wp负载了几十万文章 只能用24G 8核16线的服务器硬顶着 开memcached和静态化 不然再来几个CPU也是爆满

替换函数 用别人的主题的话,以后作者升级了会很麻烦

无可厚非 wp确实很方便和人性化 还有主题,插件的一些支持之类

其他CMS功能太乱 后台设置的一堆 很繁琐 看着就头疼 wp也用习惯了 所以我宁愿高配硬顶了
8#
发表于 2014-10-17 09:14:10 | 只看该作者
静态化的CMS不好吗,为什么必要用WP?
9#
发表于 2014-10-17 09:16:36 | 只看该作者
做垃圾站的话自己写好采集入库,前端用模板直接遍历生成静态文件,全站静态。还要wp做什么?
10#
发表于 2014-10-17 09:54:04 | 只看该作者
尼玛,还有肉丝套图,不是纯技术贴,不点赞
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|全球主机交流论坛

GMT+8, 2024-5-13 08:30 , Processed in 0.090455 second(s), 18 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表