本文原引出处:http://wpchina.org/how-to-change-wordpress-domain-prefectly-1528/

UPDATE wp_options SET option_value = replace(option_value, ‘<你的旧域名>’,'<新域名>’) ;
UPDATE wp_posts SET post_content = replace(post_content, ‘<你的旧域名>’,'<新域名>’) ;
UPDATE wp_comments SET comment_content = replace(comment_content, ‘<你的旧域名>’, ‘<新域名>’) ;
UPDATE wp_comments SET comment_author_url = replace(comment_author_url, ‘<你的旧域名>’, ‘<新域名>’) ;

上文中是基于phpMySql的,其中有几个注意要点:

0.写在前面:数据库要备份要备份要备份!万一操作失误,那损失就大了

1.一定要选中数据库之后,再去点击右侧上方的SQL选项卡

2.UPDATE 后面的是表的名称。如果在安装wordpress时自定义过表名称,这里要修改成实际的表名称

3.替换前最好先看看wp_options(也许叫别的名称)中的home字段是什么,然后用这个字段值去替换例子中的www.mydomain.com

4.为了防止出错,修改好sql语句之后,最好先点击右下角的模拟查询按钮。没有这个按钮?请检查sql语句是否正确,否则请升级phpMyAdmin。如果模拟查询执行后的结果有错误,说明sql语句哪里有问题,需要一个一个排查直至问题解决。确认无误后再点击执行按钮。

>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

至于文中有人评论说:”二级站点只能访问首页,其他还是转跳到原来的域名地址“,我表示这人maybe是改错了什么地方,允悲

我已经按照这个方法更换过N个域名了,貌似还没出过问题

网上找了一圈没找到特别好的办法。个人比较偏向于插件法,但是插件总有停止维护的一天,不能总是依赖插件

贴一个修改functions.php的办法:

add_filter('upload_mimes''wpdit_filter_mime_types');
functionwpdit_filter_mime_types($mimes)
{
    $mimes['ttf'] = 'font/ttf';
    $mimes['woff'] = 'font/woff';
    $mimes['svg'] = 'font/svg';
    $mimes['eot'] = 'font/eot';
    return$mimes;
}
在wp-include文件夹下面的functions.php文件中添加这个,就能让wordpress支持这些类型的文件上传
注意1:光这样做只是让wordpress认可这些类型,web服务器可能还是不认可,所以需要在ngix或者apache,或者其他的web服务器上添加上对应的mime类型才ok
注意2:每次WordPress升级后,functions.php文件会被覆盖,所以每次升级后都需要手动修改,这是最麻烦的地方

wordpress的媒体库能支持上传的文件类型非常有限,比如说这个:

如果有需要上传媒体库不支持的文件时候,有以下几种办法:

  1. 直接把文件扔到wordpress的wp-content/uploads/文件夹下面,或者要稍微规范点就建立以年月为文件夹名称的文件夹(纯属好看)。
  2. 修改wordpress的wp-include/function.php文件,在里面添加这么几行保存即可:

    add_filter(‘upload_mimes’, ‘wpdit_filter_mime_types’);
    function wpdit_filter_mime_types($mimes)
    {
    $mimes[‘ttf’] = ‘font/ttf’;
    $mimes[‘woff’] = ‘font/woff’;
    //还可以添加更多的文件类型,对应的mine类型可以百度
    return $mimes;
    }

    这么做的缺点是,每次wp更新后都要重新再配置一遍。。。

  3. 利用插件来完成这项工作。很遗憾,到目前为止我还没见过哪个好用的插件,能够兼容当前的wordpress版本。如果有非常好用的插件,欢迎留言

这里要注意一个问题,如果要对上传的文件进行外链的话,需要在http服务器上配置mime,添加上对应的类型,才可进行外链

百度上面有一些“不”靠谱的说法,我现在摘抄下来,免得让后来人走弯路:

  1. 打开网站的“wp-config.php”文件,查找:

    define(’DB_COLLATE’, ”);

    在这下面添加:

    define(’ALLOW_UNFILTERED_UPLOADS’, true);

    保存即可。
    这种方法是让系统跳过上传文件的类型检测,好处:方便快捷,改动较小。弊端:跳过检测后可能会带来安全隐患,此种方法不推荐使用。

    点评:这种方法经过尝试,在当前版本的wp中无效,所以也不用浪费时间去这么做了

  2. 链接FTP,打开wp-includes/functions.php文件,查找:’zip’ => ‘application/zip’, 在下面一行输入 ‘rar’ => ‘application/rar’, 。如果需要添加其他类型的上传,方法一样。
    这种方法是添加可上传的文件类型,好处:直接让程序允许某种类型文件上传,不会对网站造成任何影响。弊端:每次升级后都需要修改。推荐使用此种方法。

    点评:这个也试过了,都不知道是什么版本的wp能用的了,反正我用了无效

  3. 待发现

=====================不优雅的分割线=============================

有位仁兄发现自己无法上传swf,提示 “抱歉,出于安全的考虑,不支持此文件类型”,他给出的解决方案是http://www.gaohaipeng.com/2802.html

也许你也遇到了这个问题,我希望你能花几分钟时间看看,也许会对你有所帮助

今天写文章的时候发现点击发布的时候,chrome浏览器提示无法连接,浏览器地址栏提示是提交给post.php这个文件,于是上百度搜索答案,然后打开了wordpress的debug模式,然后发现是wptouch mobile plugin的问题。

咋一看,以前从来没遇到过这种问题呀!再一想,不对,服务器上的php版本前不久从5.X升级到了7.X,同时也在php.net网站上面找到了一篇名为Deprecated features in PHP 7.0.x的文章,然后恍然大悟,估计这个作者没有“适配”php 7.x。。。停用了这个插件后一切都正常了~

最后别忘了关闭debug模式