Products
GG网络技术分享 2025-03-18 16:13 0
网站优化对于每一位网络推广人员来说,是一件十分重要的工作。网站的访问速度、网站的稳定性都是网站优化的重点,而wordpress是众多开发者首选的网站制作模板。因此本文和大家分享关于wordpress网站优化的一些小技巧。
一、首先要对wordpress网站进行测速
网络推广人员可通过在线测试网站对其进行评估,需要的参考如下:
1)HTTP的请求数量,是否开启HTTPS。
2)启用的Wordpress插件的数量,需要调用的域的数量
3)图像、CSS、JS的数量。
2、针对问题,制定对应的优化方案。
1)插件加速 WordPress
主要是通过控制插件数量,配合使用页面缓存插件,以及数据库优化插件等结合。
WordPress Super Cache
WordPress Super Cache 插件绝对优秀,不多做介绍,大多数 WordPress 用户都应该比较熟悉,用过便知。只是使用之后也会有些后遗症很难处理,比如一些需要跟踪确认广告代码的广告商,会无法跟踪到。
WP CSS
WP CSS 也是一个 WordPress 插件,它可以 gzip 压缩和移除你 CSS文件中的空白区,还有缓存什么什么的。
PHP Speedy WP
PHP Speedy 是一个 PHP 脚本库,主要适用于调用了很多 JS 文件和CSS 文件的PHP网站。而 PHP Speedy WP 就是专为 WordPress 用户方便操作的插件。如果我们使用了很多插件,在 head 头部里面会有很多的 js 和 css 文件调用,使用这个插件,能加快这些东西的载入速度。
二、主题优化加速 WordPress
1、主题代码加速
代码决定了 WordPress 加载的速度,浏览你博客的速度在很大程度上是这个因素决定的(在同样的网络环境下),用户加载网页的时间有 80% 花在这上面。要想你的 WordPress 飞速跑起来,代码层次的优化是非常必要的。其实,压缩 CSS 和 JS 也是非常简单的事情,真的,不是你想象中的那么难。压缩 CSS,推荐使用 styleneat.com,操作方式非常简单,但是却能带来很大的速度提升。
2、主题图片优化
优化图片的好处是显而易见的,首先减少 HTTP 请求数,可以节省大量的带宽资源,这是代码优化中很基础也很重要的一个环节,其次,图片优化,可以大大提供博客整体的载入速度。而一个网页中的所使用到的图片(诸如小图标之类的)往往占有很大部分的 HTTP 请求,所以将这些图片合并成一张大的背景图时,不但可以减少图片整体的大小外,最重要的还是可以减少 HTTP 请求数。
相关方法就是利用 CSS 技术和一些图片压缩优化的方法来实现。图片压缩建议使用 smush.it。
3、删除冗余的主题函数
WordPress 主题函数有很多,每个函数也都有自己的作用,但是在一些时候,我们可以不使用函数,而直接使用具体的链接地址,这样就避免了函数对数据库的操作,从而提高了 WordPress 主题整体的载入速度。
三、数据库优化加速 WordPress
你应该定时(每周或每半个月)登录一下你的 phpmyadmin,然后对你的各个 WordPress 表进行优化和修复,很简单,你只需要选中这些表,然后进行“Optimize table”和“Repair table”即可。(如果要慎重起见,最好还是同时备份一下你的数据库。安全和性能同时抓,何乐而不为?)或者使用插件优化数据库:目前公认最好的数据库优化插件是:Optimize DB。
四、其他方法加速 WordPress
1、使用可靠的图片托管服务
尽可能将文章中的图片保存到其他地方,如 Google Picasa、Flickr 等。而不是上传到你的服务器上。这样做可以使 Web 服务器减少很多平均 CPU 负载/存储要求。
2、服务器层次加速 WordPress
置换更好的主机,部分博友有自己的服务器或者 VPS,可以针对 VPS 或者独立服务器的。使用轻量级、高性能的 Nginx,PHP 字节码缓存组件 apc。
3、为网页静态元素设置过期时间(以 Nginx 为例),以及增加 Etags 等。
4、关闭日志修订记录功能。禁用并删除 WordPress 文章修订记录,或者定期用 Delete-Revision 插件清理。
推荐方法是:把 CSS 放在开头,把 JS 放在结尾;用 Gzip 压缩网页,WP CSS 插件也可以实现这一功能;不要把 CSS 和 js 直接写入网页中,应加载外部;去除 JS 和 CSS 中的冗余,最好把 JS 文件放在主题的 footer.php 里,在 CSS 和 JS 的优化上,CSS 要首先载入,JS 要最后载入;外部调用 Google Code 里面的大型框架 –Ajax Libraries API。对这些框架的载入,让 Google 的服务去承担。常用的有:
jQuery
prototype
.aculo.us
MooTools
dojo
————————————————————————
SSL证书是HTTP明文协议升级HTTPS加密协议的重要渠道,是网络安全传输的加密通道。关于更多SSL证书的资讯,请关注数安时代(GDCA)。GDCA致力于网络信息安全,已通过WebTrust 的国际认证,是全球可信任的证书签发机构。GDCA专业技术团队将根据用户具体情况为其提供最优的产品选择建议,并针对不同的应用或服务器要求提供专业对应的HTTPS解决方案。
最近不少小伙伴都开始制作属于自己的wordpress模板了,初次制作wordpress模板肯定会遇到不少问题比如需要在特定页面执行特定代码或者是在特定的页面输出一段文字或样式,这里wp自学笔记就将所有wordpress条件判断函数都挪列出来,所有的条件判断标签都会判断某个条件是否成立,然后返回 True 或者 False 。此外有些条件判断标签还可以使用一些参数进一步的判断,下面是所有的 WordPress 条件判断标签:
is_home()
判断当前页面是否为首页如果是当前页面是首页则会返回true,但是你在后台设置了首页静态页面作为首页的话则会返回false。
is_front_page()
这个函数和上面的is_home()函数的作用也一样,唯一不同的就是就算你设置了静态页面为首页也恢返回true。
is_single()
该函数用来判断当前页面是否为文章页面或者自定义文章类型页面,并且该页面是可以附加参数的,下面那是示例代码:
//判断当前文章是否是 id 为 17 的文章。is_single( \'17\' )
//判断当前文章的标题是否是 “Irish Stew”。
is_single( \'Irish Stew\' )
//判断当前文章的别名(Slug)是否为 “beef-stew”。
is_single( \'beef-stew\' )
//传递多个参数需要使用数组。上面条件判断标签判断满足 id 为 17 、别名为 beef-stew、标题为 Irish Stew 任意一个条件文章被访问时返回 True。
is_single( array( 17, \'beef-stew\', \'Irish Stew\' ) )
//判断多个文章的 id,用法同上。
is_single( array( 17, 19, 1, 11 ) )
//判断多个文章的别名,用法同上。
is_single( array( \'beef-stew\', \'pea-soup\', \'chili\' ) )
//判断多个文章的标题,用法同上。
is_single( array( \'Beef Stew\', \'Pea Soup\', \'Chili\' ) )
注意:这个函数对于传递的参数,并无法很明确的判断参数究竟是 id、文章标题或者是文章别名,如果参数为 17,当 id 为 17 的文章会返回 True,当 Slug 为 17 的文章也会返回 True。
is_sticky()
判断当前文章是否为置顶文章,也可以传递参数,大体的使用方法和is_single()函数一样。
is_singular()
判断是否满足 is_single、is_page 和 is_attachment 的任意一个条件,满足返回 True。可以用来判断任意类型的文章页面。
is_post_type_archive()
判断是否为存档页面(时间存档页、标签、分类、自定义分类),当然也可以加上一些参数比如post_tag,category来限制当前的存档页类型。
comments_open()
判断评论功能是否开启,必须用在循环中。
pings_open()
判断文章 ping 功能是否开启,必须用在主循环中。
is_page()
判断当前是否为页面类型文章,用法和is_single一致。
is_category()
判断当前页面是否为分类目录,以下是部分代码示例:
//判断当前分类页面的 ID 是否为 9。is_category( \'9\' )
//判断当前分类页面的名字是否为“Stinky Cheeses”。
is_category( \'Stinky Cheeses\' )
//判断当前分类页面的别名是否为“blue-cheese”。
is_category( \'blue-cheese\' )
//用数组 传递参数,在前面的is_single里面讲过,作用类似。
is_category( array( 9, \'blue-cheese\', \'Stinky cheeses\' ) )
没什么特别的可讲
in_category(73)
判断当前文章是否属于某个特定分类目录(id 为 73),返回 True。注意,这里是 in 而不是 is,与上面的不同,用法和is_category类似。
is_tag()
判断当前页面是否为标签页面,当然可以传递参数,和is_category用法一致。
has_tag()
判断当前文章是否有一个标签,必须用在循环中。
is_tax()
判断当前页面是否为一个自定义分类的存档页面,下面那是用法示例:
//判断当前页面是否为一个名为 flavor 自定义分类的存档页面。is_tax( \'flavor\' )
//判断当前自定义分类 flavor 页面的别名是否为 mild。
is_tax( \'flavor\', \'mild\' )
//判断当前自定义分类 flavor 页面的页面是否为 sharp、mild、extreme 中的一个。
is_tax( \'flavor\', array( \'sharp\', \'mild\', \'extreme\' ) )
和is_category、is_tag用法不同请勿混淆。
has_term()
判断当前页面是否带有自定义分类。
//判断当前页面是否是否带有别名为 green 的自定义分类 color。has_term( \'green\', \'color\' )
//判断当前页面是否是否带有数组中的自定义分类 color
has_term( array( \'green\', \'orange\', \'blue\' ), \'color\' )
is_author()
判断当前页面是否是一个作者存档页面,用法示例:
//判断当前页面是否为 id 为 4 的作者页面。is_author( \'4\' )
//判断当前存档页面是否是 Vivian(Nickname) 的作者存档页面。
is_author( \'Vivian\' )
//判断当前存档页面是否属于 id 为 4,或者名字为 “john-jones”、“Vivian” 的作者存档页面。
is_author( array( 4, \'john-jones\', \'Vivian\' ) )
is_date()
判断当前页面是否为任何的按时间存档的页面。
is_year()
判断当前页面是否为按年份存档的页面。
is_month()
判断当前页面是否为按月份存档的页面。
is_day()
判断当前页面是否为按日期存档的页面。
is_time()
判断当前页面是否为按照小时、分钟、秒存档的页面。
is_new_day()
判断当前页面是否为当天文章的时间存档页。
is_archive()
判断当前页面是否为一个存档页面,包括:分类、标签、作者页面、日期存档页面等。
is_search()
判断当前页面是否为一个搜索结果页面。
is_404()
判断当前页面是否为404页面
is_paged()
判断当前页面是否为分页。
is_attachment()
判断当前页面是否为附件页。
is_feed()
判断是否在订阅页面。
is_trackback()
判断trackback是否开启。
is_preview()
判断一篇文章是否在预览状态(文章本身处于草稿状态)。
has_excerpt()
判断当前文章是否有摘要内容。
in_the_loop()
判断是否在主循环内部。
如果发现一些判断失效了可能是循环未注销造成的全局变量错乱问题,可以使用以下函数来注销循环:
//使用WP_Query创建多个循环是使用,不接受任何参数,恢复$post全局变量的数据wp_reset_postdata();
//使用query_posts()自定义循环时使用,不接受任何参数,不仅恢复$post全局变量,还会销毁之前的查询
wp_reset_query();
//需要重用同一个页面的查询结果时使用
rewind_posts();
实例:
$random_post = new WP_query();$random_post->query(\'cat=3&showposts=1&orderby=rand\');
while ($random_post->have_posts()) : $random_post->the_post();
<a href=\"<?php the_permalink() ?>\" title=\"<?php the_title(); ?>\">
<img src=\"<?php echo get_post_meta($random_post->ID, \'featured\', true); ?>\">
</a>
endwhile;
wp_reset_postdata();
<?php query_posts(\'posts_per_page=3\');if (have_posts()) : while (have_posts()) : the_post(); ?>
<h1><a href=\"<?php the_permalink(); ?>\"><?php the_title(); ?></a></h1>
<?php endwhile; endif; ?>
<?php wp_reset_query(); ?>
if (have_posts()) : while (have_posts()) : the_post(); ?><h1><a href=\"<?php the_permalink(); ?>\"><?php the_title(); ?></a></h1>
<?php endwhile; endif; ?>
<?php rewind_posts(); ?>
<?php while (have_posts()) : the_post(); ?>
<?php the_content(); ?>
<?php endwhile; ?>
Demand feedback