WordPress使用经验汇总

在我产生想要建立一个独立博客的初期,最早接触的就是WordPress,名气大、用户量多、功能丰富、使用简单是我对它的评价。虽说使用简单,但仍需要去学习如何去让它运行的更好、更符合我个人的口味,在此期间也让我学习到了很多关于Web的知识。就我个人来说,对WordPress主要作出的努力就是访问速度和一些功能上的优化。现在的博客程序的优化和个性化已经完成了,剩下的时间主要是丰富其内容,这里将我在WordPress的种种微薄经验分享出来,给他人建立实例,帮助有类似经验者少走弯路。

前言

相信许多小站长在早初期间都是抱着学习的态度,使用了许多免费的服务去尝试WordPress,我也不例外。博客最初使用的是Hostinger免费空间,域名用的是ga免费域名,CDN用的是CloudFlare。这些免费的服务给我在初期学习阶段提供了很大的便利,很感谢这些服务。

现如今是自己购买了个VPS,部署了LAMP环境放上了自己的博客,域名还是免费的ga域名,CDN服务却不使用了。免费空间访问速度即使加上CDN也并不稳定,而VPS除了可以搭建博客,还可以用来学习Linux,所以这方面就果断付费了;由于我并不是很在乎SEO,免费的ga域名也能够满足目前的需求就暂时没有变动,以后可能去注册个.COM域名。写作环境是这样稳定下来了,在这里分享其中的经历。

一、基础功能设置

1-1固定链接

固定链接对SEO有一定的影响,至于什么样的固定链接对SEO最好谁也没个结论,月光博客曾在一篇文章中推荐设置成/%year%/%monthnum%/%postname%.html,而我出于对简洁url的偏好选择了https://yuan.ga/sample-post/格式的固定链接。据我经验,链接过长肯定是不利于SEO的,年月日等日期组织方式更适合一些高产的网站,如资讯网站之类的。

修改固定链接可能导致能正常访问主页,在访问文章时出现404错误。原来WordPress的固定链接功能需要修改.htaccess文件的权限,所以除了需要保证.htaccess文件的可读,还需要将/etc/apache/apache2.conf文件中的AllowOverride none修改为AllowOverride all。详情参考 Ubuntu搭建WordPress完整过程第五章部分的内容。

1-2多媒体设置

WordPress默认会把上传的照片裁切成多个尺寸,太多尺寸的照片不但占用空间,也没有太大用途,所以取消勾选“总是裁剪缩略图到这个尺寸”。

1-3robots.txt

robots.txt位于网站根目录,能够向搜索引擎表明自己不希望被检索的网站内容,文件并不一定需要创建,因为有些搜索引擎并不会遵守你的规则,但我会设置成如下内容,阻止禁止索引分页,指示sitemap位置:

User-agent: *
Disallow: /feed/
Disallow: /trackback/
Disallow: /author/
Disallow: /category/
Disallow: /page/
Disallow: /*/page/
Sitemap: https://yuan.ga/sitemap.xml

禁止索引分页的必要性在于,用户在搜索引擎中都是想要看到文章,而不是在分页翻页,这样有利于提升用户体验。还有需要注意的是,不要在robots.txt中标识出重要的目录,这样会帮助骇客攻击你的网站。

1-4插件使用

1-4-1Akismet

WordPress官方出品的反垃圾评论插件,也许你的博客刚刚开始很少有人光顾,也没有垃圾评论,也仍然建议你使用反垃圾评论插件,因为一旦开始,就会刷出大量的垃圾评论。插件设置页面的一句话是有道理的——“清除垃圾评论需要时间。 Akismet为您节省了18天!”,现在不到一年的时间就有了两万条垃圾评论,如果手动清理将会浪费很多时间。

使用方法也很简单,首先搜索安装这个插件,然后注册 www.wordpress.com 的账号,连接授权即可。

1-4-2WP Super Cache

这是一位WordPress官方人员出品的高级缓存插件,能够生成静态的html文件,减少服务端压力,加速WordPress的访问速度。这个缓存插件相对其他插件来说,使用人数较多,功能也较为完善。就我目前的使用情况来看,加速还是有些效果的。

1-4-3Google XML Sitemaps

这款插件可以生成网站地图,主要是方便谷歌的爬虫索引网站(对其他搜索引擎也基本适用),加快网站的索引速度、增加索引量。

目前我的网站地图是使用非插件的方式实现的,只需要在网站根目录下放如 sitemap.php 文件,内容如下:

<?php
require('./wp-blog-header.php');
header("Content-type: text/xml");
header('HTTP/1.1 200 OK');
$posts_to_show = 1000;
echo '<?xml version="1.0" encoding="UTF-8"?>';
echo '<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9" xmlns:mobile="http://www.baidu.com/schemas/sitemap-mobile/1/">'
?>
  <url>
      <loc><?php echo get_home_url(); ?></loc>
      <lastmod><?php $ltime = get_lastpostmodified(GMT);$ltime = gmdate('Y-m-d\TH:i:s+00:00', strtotime($ltime)); echo $ltime; ?></lastmod>
      <changefreq>daily</changefreq>
      <priority>1.0</priority>
  </url>
<?php
/* 文章页面 */
$myposts = get_posts( "numberposts=" . $posts_to_show );
foreach( $myposts as $post ) { ?>
  <url>
      <loc><?php the_permalink(); ?></loc>
      <lastmod><?php the_time('c') ?></lastmod>
      <changefreq>monthly</changefreq>
      <priority>0.6</priority>
  </url>
<?php } /* 文章循环结束 */ ?>  
<?php
/* 单页面 */
$mypages = get_pages();
if(count($mypages) > 0) {
    foreach($mypages as $page) { ?>
    <url>
      <loc><?php echo get_page_link($page->ID); ?></loc>
      <lastmod><?php echo str_replace(" ","T",get_page($page->ID)->post_modified); ?>+00:00</lastmod>
      <changefreq>weekly</changefreq>
      <priority>0.6</priority>
  </url>
<?php }} /* 单页面循环结束 */ ?>
<?php
/* 博客分类 */
$terms = get_terms('category', 'orderby=name&hide_empty=0' );
$count = count($terms);
if($count > 0){
foreach ($terms as $term) { ?>
    <url>
      <loc><?php echo get_term_link($term, $term->slug); ?></loc>
      <changefreq>weekly</changefreq>
      <priority>0.8</priority>
  </url>
<?php }} /* 分类循环结束 */?>
<?php
/* 标签(可选) */
$tags = get_terms("post_tag");
foreach ( $tags as $key => $tag ) {
$link = get_term_link( intval($tag->term_id), "post_tag" );
      if ( is_wp_error( $link ) )
   return false;
   $tags[ $key ]->link = $link;
?>
<url>
      <loc><?php echo $link ?></loc>
      <changefreq>monthly</changefreq>
      <priority>0.4</priority>
  </url>
<?php  } /* 标签循环结束 */ ?>
</urlset>

然后在网站根目录下的 .htaccess 文件的首部加入一行:

# Set sitemap
RewriteRule ^(sitemap)\.xml$ $1.php

这样就已经完成了,你可以访问我的网站地图预览效果:https://yuan.ga/sitemap.xml

1-5修订版本控制

WordPress默认保存你的每一篇保存的文章为修订版本,这确实是一种非常保险、安全的设定,同时也占用了数据库。长时间的使用可能会导致你的修订版本数量非常多,不但占用空间也影响性能,所以需要对其进行重新设定,限制修订版本数量。编辑wp-config.php,加入下面的内容:

/* limet post revision */
define('WP_POST_REVISIONS', 3 );

此时你的修订版本数量最多为三个,你可以修改成的更少,比如最多保存一个修订版本或者两个修订版本,视自己情况而定。当然也可以完全关闭修订版本功能,把上列配置改成:

/* disable post revision */
define('WP_POST_REVISIONS', false );

那么已经产生的修订版本如何删除?可以通过在主题模板函数functions.php中加入下面内容:

$wpdb->query( "DELETE FROM $wpdb->posts WHERE post_type = 'revision'" );

点击更新文件,即可删除掉所有修订版本。这个代码当然不需要一直保留,生效后删除掉即可。

二、美观篇

2-1主题

随着WordPress4.7的发布,现在主题已经更换为Twenty Seventeen主题,更加美观漂亮。

2-2图标

一个好的网站图标和网站名字一样重要,我是用自己设计的图标,在自定义主题-站点身份-站点图标选项中,导入自己设计的logo,这会被当作favicon显示在浏览器标签上,显示效果如下:

wordpress-favicon

三、性能篇

网站的打开速度非常影响用户体验,如果五秒打不开一个网站,那么大多数人都会直接关掉这个页面,因为一般来说,那些没有能力去优化访问速度的网站通常也不会存在优质内容。言归正传,网站加速速度快不但增强了用户体验,自己访问时也能心情愉悦,所以非常有必要去进行优化。

前端优化的学问很深,大多数人都难以去完全弄懂,但只需要做到两点就可以让网站的访问速度大幅提升,那就是:

  • 静态化:WordPress是动态博客程序,访客所访问到的页面都是通过PHP生成的,而静态化则是直接生成HTML文件,用户访问直接由WEB代理转发即可,性能会得到极大的提升,且减少了服务器压力。
  • CDN:CDN就是内容分发服务,在全国至世界各地有着节点缓存着网站的内容,用户访问时可以从最近的节点接收到内容,速度自然快。

这两种方法操作起来也是非常简单,更全面、更详细的内容可以查阅我的另一篇文章——『WordPress性能优化指南』。

发表评论

电子邮件地址不会被公开。 必填项已用*标注