wordpress二三事

1、wordpress更换域名

由于wordpress安装时已经绑定了域名,当更换网站域名时需要更改才能正常访问,否则会出现部分或整个网站都访问不了的情况

    (1)未被强制更换

进入wordpress的后台,设置里将wordpress地址和站点地址都换为要更换的域名        

wordpress二三事

    (2)被强制更换域名(域名备案失效等)

    方法一:通过FTP软件找到wordpress的配置页,网站根目录下的wp-config.php,插入define('RELOCATE',true);

wordpress二三事

    登入后台后将站点地址改过来,之后记得删除define('RELOCATE',true);

    方法二:直接登入后台数据库,修改options表中的siteurl和home的值改为新的域名

wordpress二三事

    据网上说只改这里治标不治本,把改的全面的方法也记一下,选中wp的所有表,在sql栏输入

UPDATE wp_options SET option_value = replace( option_value,'http://原域名','http://新域名') WHERE option_name = 'home' OR  option_name = 'siteurl';
UPDATE wp_posts SET post_content = replace( post_content, 'http://原域名','http://新域名') ;
UPDATE wp_posts SET guid = replace( guid, 'http://原域名','http://新域名') ;

2、搬运wordpress到其他空间

完全搬运网站问题不大,直接用FTP把整个网站的文件拷贝下来,问题在于数据库的导入

    (1)导入数据库时,出现“在多字节的目标代码页中,没有此 Unicode 字符可以映射到的字符。 (#1113)”

    解决办法:在导入时选择UTF-8

wordpress二三事

    (2)导入数据库时,出现“#1273
– Unknown collation: ‘utf8mb4_unicode_ci’” 或者 “#1273 – Unknown
collation:

‘utf8m  b4_unicode_520_ci’”的错误,一般是导入的MYSQL和当前网站数据库版本不一致导致的。

    解决办法:将导出的数据库文件.sql用sublime之类的打开。

    替换:utf8mb4_unicode_ci为:utf8_general_ci

    替换:utf8mb4_unicode_520_ci为:utf8_general_ci

    替换:utf8mb4 为 utf8

    保存之后重新导入就没问题了

3、启用wordpress邮箱验证注册

问题1:wordpress自带php调用Mail()服务发送邮箱,不过很多时候mail服务并不开启

        虽然可以开启,但是建议采用smtp的方式使用公用服务器(mail服务发送的邮件很可能被邮箱拦截)

    解决办法:

        1、注册公用邮箱,比如网易,进去后开启smtp服务,复制弹出的绑定密码

        2、使用wordpress的插件,smtp的均可,会有一些设置上的区别,但总体差别不大

        以163邮箱为例,设置如下内容:

        host=smtp.163.com        SMTP Authentication=true        Username=你注册的邮箱名      

        Password=你复制的绑定密码(不是邮箱登陆密码)        Type of Encryption=SSL(不采用ssl加密的方式会出现无法发送的问题)

        port=465(或者994)            From Email Address=你注册的邮箱        From Name=你希望对方看到的名字

wordpress二三事

    测试发送,成功收到则成功(有可能在垃圾邮件里)

    附:网易邮箱服务相关信息

服务名称 服务器地址 SSL协议采用端口 非SSL协议采用端口
IMAP imap.163.com 993 143
SMTP smtp.163.com 465/994 25
POP3 pop3.163.com 995 110

问题2:邮箱验证链接无效

    原因是发送的链接中>符号被邮件当成了链接的一部分,导致校验无法通过

    解决方法一:

        (1)修改wp根目录中的login.php中

$message .= '<' . network_site_url("wp-login.php?action=rp&key=$key&login=" . rawurlencode($user_login), 'login') . ">\r\n";

            修改为

$message .= network_site_url("wp-login.php?action=rp&key=$key&login=" . rawurlencode($user_login), 'login') . "\r\n";

        即去掉前后的括号即可

        (2)修改wp根目录/wp-includes/pluggable.php中

$message .= '<' . network_site_url("wp-login.php?action=rp&key=$key&login=" . rawurlencode($user->user_login), 'login') . ">\r\n\r\n";

           修改为

$message .= network_site_url("wp-login.php?action=rp&key=$key&login=" . rawurlencode($user->user_login), 'login') . "\r\n\r\n";

    解决方法二:在主题的functions.php中插入

/**
* 修复WordPress找回密码提示“抱歉,该key似乎无效”问题
*/
function reset_password_message( $message, $key ) {
    if ( strpos($_POST['user_login'], '@') ) {
    $user_data = get_user_by('email', trim($_POST['user_login']));
} else {
    $login = trim($_POST['user_login']);
    $user_data = get_user_by('login', $login);
}
    $user_login = $user_data->user_login;
    $msg = __('有人要求重设如下帐号的密码:'). "\r\n\r\n";
    $msg .= network_site_url() . "\r\n\r\n";
    $msg .= sprintf(__('用户名:%s'), $user_login) . "\r\n\r\n";
    $msg .= __('若这不是您本人要求的,请忽略本邮件,一切如常。') . "\r\n\r\n";
    $msg .= __('要重置您的密码,请打开下面的链接:'). "\r\n\r\n";
    $msg .= network_site_url("wp-login.php?action=rp&key=$key&login=" . rawurlencode($user_login), 'login') ;
    return $msg;
}
add_filter('retrieve_password_message', reset_password_message, null, 2);