优化WordPress,解决加载慢,等待google引用地址超时问题

近几个月发现空间经常很慢,特别是WordPress响应非常迟钝,但一直懒得动它。 前几天实在受不了,正巧看到一个特价的vps,就用paypal支付了$,买了一个. 搞好了系统,配置好环境,就在准备迁移WordPress数据的时候,偶然看到一个文章,说近来几个月很多人的WordPress都是变的很慢。 查了查相关文章,跟google被墙有关,原因是wp的字体加载的都是 在google托管的,还有些js,css脚本等等,比如:

<link href='http://fonts.googleapis.com/css?family=Open+Sans:300,400,600&subset=latin,latin-ext' rel='stylesheet'>

<script src="http://html5shim.googlecode.com/svn/trunk/html5.js">

<script type='text/javascript' src='http://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js?ver=3.4.2'></script>

这样 googleapis.com,googlecode.com 无法联通,自然相关引用的字体,脚本也都无法加载,只有等待主机超时, 所以WordPress都变的很慢。 知道问题所在就处理它。

 [ 只解决最影响加载速度的字体就可以了 ]

1。不使用google字体

编辑主题的 functions.php文件,在末尾添加以下代码:
//禁用Open Sans
class Disable_Google_Fonts {
public function __construct() {
add_filter( ‘gettext_with_context’, array( $this, ‘disable_open_sans’             ), 888, 4 );
}
public function disable_open_sans( $translations, $text, $context, $domain ) {
if ( ‘Open Sans font: on or off’ == $context && ‘on’ == $text ) {
$translations = ‘off’;
}
return $translations;
}
}
$disable_google_fonts = new Disable_Google_Fonts;

这里提供了由360网站卫士CDN驱动的常用前端公共库以及和谐使用Google公共库&字体库的调用方法

下面的方法2,3是使用 – 360网站卫士常用前端公共库CDN服务 替换 google的对应引用地址。

2。手动修改替换引用地址

打开wordpress文件: wp-includes/script-loader.php

搜: fonts.googleapis.com

替换:fonts.googleapis.com替换为 fonts.useso.com ,保存文件,发现问题解决了。

原理就是用360来加速google字体。

速度很好,360的加速很快。

3。使用插件

如何通过第三方Wordpress字体转换插件继续使用Google字体库? (感谢来自淘宝的soulteary童鞋开发了这个插件) 插件说明地址:http://www.soulteary.com/2014/06/08/replace-google-fonts.html 插件下载地址:http://www.soulteary.com/wp-content/uploads/2014/06/Replace-Google-Fonts.zip

—- P.S. 这样暂时就不用站点迁移了. 差点误会了服务商.

解决DirectAdmin(DA) 中 WordPress 更新失败的问题

在DirectAdmin下更新WordPress版本,主题或插件时, 经常出现: “下载失败。 文件流的目标目录不存在或不可写。”的错误提示.

或者是模板,插件”无法删除xxx。”等问题。

这跟文件权限的设置有关,处理方法如下:.

先进入DirectAdmin后台,选择域名站点,在进入”File Manager”.

然后进入“wp-content”文件夹下,勾选”plugins“,”themes“,”upgrade“,”uploads“等有问题的文件夹。

在下面的”set Permission“后设置权限”777“或者”755“, 勾选后面的”Recursive“遍历选项,再点击”set Permission“按钮。

然后可以尝试下更新或删除是否正常。

如果还不行, 可能是文件权限的所有者改变了,可以点击”Reset Owner“,

重置文件所有者再试一次。

一般问题都可以解决了。

—————————————————

再者就是主机服务商的一键脚本安装wordpress时引发的 在DirectAdmin或者cPanel虚拟主机通常带的快速安装wp脚本,如果不进行特殊设置会在wp-config.php文件里面加入 “WP_TEMP_DIR” 属性,此属性虽然有助于确定wordpress下载升级包或者插件时所用的路径但是也有缺点。 也就是说如果你在更换空间时忘记修改了此属性的绝对路径就会出现以上的错误

解决办法是:空间更换完毕后自行修改wp-config里的此项属性所对应的缓存目录的绝对路径,目标文件夹权限设为777。 或者删除类似这样的代码define('WP_TEMP_DIR',      '/home/xxx.com/wp-content/uploads');

另一种:

通过wordpress后台,无法删除插件。甚至通过FTP也无法删除。也就是说删除之后,仍然显示在后台插件列表内。

解决方法: 通过Secure Shell (SSH)删除

这主要是因为插件有隐藏/嵌套的文件,没有出现在FTP.

使用 SSH 访问博客

  1. 通过SSH登录站点。
  2. 使用 SSH 命令浏览 “../wp-content/plugins/”。
  3. 使用 ls -al 查看文件的完全列表。
  4. 通过 rm (文件名)删除部分文件.

关于修复WordPress固定链接的改变/迁移 (Change Permalink Migration)

当服务器迁移,需要更换WordPress地址路径时,或是导入了新数据时,会遇到固定链接 改变,文章ID也不正确的情况。

我们需要修正这个问题,以我一些经验为例:

 

例如,我在迁移服务器后,且又多次导入了几个时期分别备份的数据后:

(原URL):http://bohu.net/wp/2006/07/197,orz-and-wtf/  变成了 (新URL)http://bohu.net/blog/197

原文件夹是 wp 新文件夹为 blog

 

设置转发(Redirect)

那么首先设置web服务器的重定向类型(Redirect Type),一般web服务器都支持一下3种Redirect:
301 – Permanent(永久)
302 – Temporary(临时)
303 – Replaced (替换)
详细参数说明,查看 维基百科 HTTP状态码 :3xx重定向
用   303 ,  Replaced  redirected (303)  重定向 wp 到 blog,
Local URL Path Type Redirect URL
/wp 303 http://bohu.net/blog

 

303 – Replaced 顾名思义,就是可以替换URL中的地址,而且正确的响应所传递的参数。? 号之后的参数不会丢失。

如: http://bohu.net/blog/post.php?post=1234&action=edit  303 替换为 http://bohu.net/wp/post.php?post=1234&action=edit

这样设置之后 访问 bohu.net/wp 就可以 转到 bohu.net/blog 了。

 

手动修复ID

但是元文章ID是197, 现在变为了2553,你如果用插件修复固定连接的话那么,可以忽略这一部分。

我尝试手动修复了ID。先下载插件 ”ShowID

下载插件:ShowID for Post/Page/Category/Tag/Comment – http://ounziw.com/2010/02/05/showid/

启用之后就可以在文章列表看到每篇文章的 ID 了。我没找到自动更改ID的插件,进数据库自己修改的。

这样 http://bohu.net/blog/197 就可以恢复访问到了。

 

修复固定链接改变/迁移

但是之前的固定连接 ”197,orz-and-wtf“ 为两个参数组合的,所以原URL还不能直接访问。

需要使用插件转发到新固定连接,我最先用的是 ”Advanced Permalinks“

下载插件:Advanced Permalinks – http://urbangiraffe.com/plugins/advanced-permalinks/

可以完成转发效果,不过发现设置有点不太简单化,而且我的翻页有问题。

下面是附带解决固定连接修改后翻页的问题。

翻页有问题     有时候翻到第二页或其他页不能正常工作,地址如下:
 http://www.example.com/page/2/  http://www.example.name/category/categoryname/page/2/  http://www.example/year/month/day/page/2/  http://www.example/year/month/page/2/
    访问上面的任何一个链接,出现提示说: “Sorry, no posts match that criteria.”
    这是.htaccess造成的,删掉,重新生成就好了。

看到”Advanced Permalinks“已经是2年未更新了,最后还是更换了插件为 ”Permalink Finder“。

下载插件:Permalink Finder –  http://www.blogseye.com/

启用”Permalink Finder“Permalink-Finder Options”菜单,我按照默认设置。

这样就自动化完成修复固定链接的改变/迁移了。设置基本上不需要多少的改变。