本站公告: 暂无公告....

Wordpress完美搬迁至Zblog并修改主题优化移动端

前端开发 兰亭楼 2评论 1151浏览

随着Wordpress越更新越臃肿,终于不能忍受打开后台的龟速,决定将Wordpress搬迁至更轻便快捷的ZblogPHP。

搬迁主要有两大部分:

一、数据搬迁

          a.    数据库内容的搬迁(搬迁后有问题第二大部分会修正)

             数据库的搬迁比较简单,直接使用先用的插件即可搬迁全部数据库的内容(评论,文章,附件地址等等)插件名称:WordPress数据转移插件   1.1 (特别说明:Zblog一定要全新安装,并且安装到wordpress的数据库中,即Zblog与要搬迁的Wordpress共用一个数据库)


          b.    图片附件等文件的搬迁(搬迁后有问题第二大部分会修正)。

         图片文件的搬迁也很简单,直接找到wordpress目录下的wp-content\uploads把里面的内容复制到Zblog的/zb_users/upload/目录下。


二、数据搬迁后问题的修正。

          a.    文章中图片URL的修正。

        搬迁后文章中的图片地址还是Wordpress图片存放的地址。我们需要在Mysql数据库中执行如下命令来替换(可以使用PHPmyadmin Navicat等工具)     

        update zbp_post set wp_comments=replace(wp_comments,'Wordpress图片目录如(https://lantinglou.com/wp-content/uploads),'Zblog的图片目录如(https://lantinglou.com/zb_users/upload/)')

                执行以上命令即可完成替换域名要替换成自己的域名。


      b.  Zblog附件管理中图片附件URL的修正。

           其实原理跟上面一样,原因是Wordpress中图片、附件的URL在数据库中是保存了年月目录的 如(2013/12/1.jpg)而Zblog是没保存的如(1.jpg)。还是在Mysql数据库中执行如下代码   

       update zbp_upload set ul_Name=replace(ul_Name,'2014/01','')

           上面代码是要执行多次的 一年就要执行12次 如 2014/02 2014/03.....

            如果你觉得麻烦可以写一个PHP小程序,用正则表达式替换年月目录为空就可以了。


      c.    这部分最重要  修正文章正文的段落格式。

            产生原因:Wordpress默认保存在数据库中的文章的段落换行是没有HTML标签的用文本的格式来保存,而ZblogPHP是保存了完整的HTML 段落格式的 如(<p> <br>等标签)     

            修正方法:找到当前主题的下template/post-single.php文件中的{$article.Content;}替换为如下代码

    {php}
    $logtime = strtotime($article->Time());
        $starttime =  strtotime("2014-10-01 00:00:00");
        if($logtime < $starttime){
            $article->Content = str_replace(chr(10),'<span style="display:block; margin-top:20px;"></span>',$article->Content);
            if (strpos($article->Content,"<pre")) {
            preg_match_all('/<pre.*pre>/',$article->Content,$code);
            $code = $code[0][0];
            $code = str_replace('<span style="display:block; margin-top:20px;"></span>', "", $code);
            preg_match_all('/^.*?<pre/',$article->Content,$content);
            $content = $content[0][0];
            $content = $content.$code;
            $content =  str_replace("<pre<pre", "<pre", $content);
            preg_match_all('/^.*<\/pre>/',$article->Content,$headstr);
            $headstr = $headstr[0][0];
            $end = str_replace($headstr,"",$article->Content);
            $article->Content =$content.$end;
        }
         echo $article->Content;
    }else{
         echo $article->Content;
    }
    {/php}


                原理是把换行符替换为<span style="display:block; margin-top:20px;"></span>,之所以不用<p>标签,是因为如果有多个换行符这段代码就可以自动合并他们从而使得文章的段落更自然美观。原理参考css规定垂直方向的margin会合并,合并的margin处于容器最外部。当然你也可以直接修改系统底层的$article->Content;原理跟上面是一样的。


        d.    删除wordpress图片的标题标签[caption][/caption]标签及其内容

               原因:wordpress的图片的如果不存在就会用上面这个标签中的文字来替代。Zblog不支持,我们可以直接删除。我写了一个小程序直接用来删除。

        header("Content-type: text/html; charset=utf-8");        
            $con = mysql_connect("localhost", "数据库用户名", "数据库密码");
                mysql_select_db("数据库名称");
                mysql_query("set names utf8");
                $sql = "SELECT * FROM `zbp_post`";
                $result = mysql_query($sql);
                $i = 0;
                while ($row = mysql_fetch_assoc($result)) {
                 
                    $row[log_ID];
                    $content = $row[log_Content]."<br>";
                    $content = preg_replace('/\[caption.*?\]/', "", $content);
                    $content = preg_replace('/<\/a>.*?\[\/caption\]/', "</a>", $content);
                    
                    $content = preg_replace('/>.*?\[\/caption\]/', "</a>", $content);
                    $sqlnew = "UPDATE `zbp_post` SET `log_Content`='".$content."'WHERE log_ID=".$row[log_ID];
                    
                    if (mysql_query($sqlnew)) {
                        $i = $i+1;
                        echo $i."Change OK<br>";
                       }     
                   }

    //悲剧.....写到这里的时候断电了,没有保存草稿,怀念Wordpress的自动保存草稿功能,重写吧......。

    至此Wordpress搬迁至Zblog已经全部完整,实际效果基本完美,大家可以参看我的博客:https://lantinglou.com/


       下面来说说 主题的修改跟移动端的优化,具体过程等等改天有时间在写一篇文章,只讲要点。

       1.主题修改:此次用的这个主题很满意,但存在一些小Bug修正之。

            1.1 LOGO修改 1.2 导航栏修改为显示所有分类  1.3侧边栏主题开关及增加自己的小工具  1.4 IE8 IE7兼容性问题的解决。


       2.移动端的设计与优化:该主题再带响应时设计,但是移动端比较不OK,所以进行修改。

            2.1 LOGO更改为3倍高清适配高分辨率的手机。 2.2导航栏颜色修改 2.3.导航栏跟随页面滚动(固定头部位置)2.4 列表图片大小修改 、文字颜色修改、显示内容修改 2.5搜索栏隐藏于显示 2.6文章页面显示优化

            效果见下图:

            文章到此结束,第一次使用Zblog的难免有错误和不当之处,请大家在评论中指正反馈。


目前存在问题:1.包含代码<pre></pre>的文章虽然做了处理,但是如果包含多段<pre></pre>可能会无段落,需要重新编辑;

转载请注明: 兰亭楼 » Wordpress完美搬迁至Zblog并修改主题优化移动端

发表我的评论 换个身份
取消评论

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址

网友最新评论 (2)

  1. 你好,能否指导一下呢?我已经使用插件转换了,但图片、图片标签等弄不来,看了好多遍了。。。
    访客4年前 (2014-10-05)回复
    • 图片按照上面讲的 直接 在数据库里面执行SQL语句就好了,标签我这边没有问题。
      兰亭楼4年前 (2014-10-05)回复