typecho转战wordpress的心得与体会

这个周末我购买了muiteer后开始了漫长的typecho转战wordpress的过程,我想说一说这两天我的所为和心得。

开始折腾

一、转战的第一步先是导出typecho的文章,利用TypEport插件导出xml文件 (Github地址:https://github.com/panxianhai/TypExport

二、保存urs/upload/ 目录下的文件

三、删除ty所以数据后,安装wp,首先导入xml,再把第二步的文件覆盖wp中wp-content/upload/

四、利用SQL语句改变原文章中图片地址,下方是SQL语句:

UPDATE wp_posts SET post_content = REPLACE( post_content, 'http://xx.com/usr/uploads/', 'http://xx.com/wp-content/uploads/'); 

五、因为图片文件是从服务器后台覆盖的,wp媒体库识别不出,这时候需要插件:add from server 进行操作。 当我做到这时候以为大功告成,有点激动,然后随之而出的问题来了:评论数据后台能查看,而网站前台却看不见。

六、打开网站数据库和当前评论(系统的自动评论)做对比,发现comment_type这个是wp没用的,随即把comment_type下数据删除,前台评论可以看见了。muiteer装上之后,我却发现评论区的回复按钮存在点击跳转的问题,于是我开始了魔鬼般的自查,在询问了devoted之后,我们发现了刷新前后有一个js的异常(这个js刷新页面才会出现)

七、加上七牛cdn,提前加载这个js,评论回复问题解决,下放文件配置好了放在主题functions.php

/*七牛云存储*/
if ( !is_admin() ) {
    add_action('wp_loaded','c7sky_ob_start');
    function c7sky_ob_start() {
        ob_start('c7sky_qiniu_cdn_replace');
    }
function c7sky_qiniu_cdn_replace($html){
    $local_host = 'http://*********'; //需要加速的博客域名,后面不要有/
    $qiniu_host = 'http://******'; //你的七牛域名,可以是绑定的,也可以是默认的
    $cdn_exts   = 'js|css|jpg|png'; //需要替换的资源,中间必须用|来分隔
    $cdn_dirs   = 'wp-content|wp-includes'; //这里是需要进行加速的目录,同理需要|
    $cdn_dirs   = str_replace('-', '\-', $cdn_dirs);
    if ($cdn_dirs) {
        $regex  =  '/' . str_replace('/', '\/', $local_host) . '\/((' . $cdn_dirs . ')\/[^\s\?\\\'\"\;\>\<]{1,}.(' . $cdn_exts . '))([\"\\\'\s\?]{1})/';
        $html =  preg_replace($regex, $qiniu_host . '/$1$4', $html);
    } else {
        $regex  = '/' . str_replace('/', '\/', $local_host) . '\/([^\s\?\\\'\"\;\>\<]{1,}.(' . $cdn_exts . '))([\"\\\'\s\?]{1})/';
        $html =  preg_replace($regex, $qiniu_host . '/$1$3', $html);
    }
    return $html;
}
}

八、接下来就是邮箱回复功能了,在functions.php中添加代码

//smtp发送邮件功能
add_action('phpmailer_init', 'mail_smtp');
function mail_smtp( $phpmailer ) {
    $phpmailer->FromName = '卷土'; //名字
    $phpmailer->Host = 'smtp.qq.com'; //smtp地址,可以到你使用的邮件设置里面找
    $phpmailer->Port = 465; //端口,一般不用修改
    $phpmailer->Username = '*********';  //邮件账号
    $phpmailer->Password = '*********'; //邮件密码
    $phpmailer->From = '*********';//邮件账号
    $phpmailer->SMTPAuth = true;  
    $phpmailer->SMTPSecure = 'ssl'; //tls or ssl (port=25留空,465为ssl)一般不用修改
    $phpmailer->IsSMTP();
}



//评论回复邮件   
function comment_mail_notify($comment_id) {   
$comment = get_comment($comment_id);   
$parent_id = $comment->comment_parent ? $comment->comment_parent : '';   
$spam_confirmed = $comment->comment_approved;   
if (($parent_id != '') && ($spam_confirmed != 'spam')) {   
$wp_email = 'no-reply@' . preg_replace('#^www\.#', '', strtolower($_SERVER['SERVER_NAME']));//发件人e-mail地址   
$to = trim(get_comment($parent_id)->comment_author_email);   
$subject = '您在 [' . get_option("blogname") . '] 的留言有了回复';   
$message = '<div style="color:#555;font:12px/1.5 微软雅黑,Tahoma,Helvetica,Arial,sans-serif;max-width:550px;margin:50px auto;border-top: none;" ><table border="0" cellspacing="0" cellpadding="0"><tbody><tr valign="top" height="2"><td valign="top"><div style="background-color:white;border-top:2px solid #00A7EB;box-shadow:0 1px 3px #AAAAAA;12px;max-width:550px;color:#555555;font-family:微软雅黑, Arial;;font-size:12px;">
<h2 style="border-bottom:1px solid #DDD;font-size:14px;font-weight:normal;padding:8px 0 10px 8px;"><span style="color: #00A7EB;font-weight: bold;">> </span>您在 <a style="text-decoration:none; color:#58B5F5;font-weight:600;" href="' . home_url() . '">' . $blogname . '</a> 的留言有回复啦!</h2><div style="padding:0 12px 0 12px;margin-top:18px">
<p>您好, ' . trim(get_comment($parent_id)->comment_author) . '! 您发表在文章 《' . get_the_title($comment->comment_post_ID) . '》 的评论:</p>
<p style="background-color: #EEE;border: 1px solid #DDD;padding: 20px;margin: 15px 0;">' . nl2br(strip_tags(get_comment($parent_id)->comment_content)) . '</p>
<p>' . trim($comment->comment_author) . ' 给您的回复如下:</p>
<p style="background-color: #EEE;border: 1px solid #DDD;padding: 20px;margin: 15px 0;">' . nl2br(strip_tags($comment->comment_content)) . '</p>
<p>您可以点击 <a style="text-decoration:none; color:#5692BC" href="' . htmlspecialchars(get_comment_link($parent_id)) . '">查看完整的回复内容</a>,也欢迎再次光临 <a style="text-decoration:none; color:#5692BC"
href="' . home_url() . '">' . $blogname . '</a>。祝您生活愉快!</p>
<p style="padding-bottom: 15px;">(此邮件由系统自动发出,请勿直接回复!)</p></div></div></td></tr></tbody></table></div>';   
$from = "From: \"" . get_option('blogname') . "\" <$wp_email>";   
$headers = "$from\nContent-Type: text/html; charset=" . get_option('blog_charset') . "\n";   
wp_mail( $to, $subject, $message, $headers );   
//echo 'mail to ', $to, ' ' , $subject, $message; // for testing   
}   
}   
add_action('comment_post', 'comment_mail_notify');

九、wp短横线“-”被转义,在主题functions.php中添加

add_filter( 'run_wptexturize', '__return_false' );

大功告成,结束。

我在折腾wp的路上渐行渐远,当然少不了一群博友的帮助,非常感谢。

尽管会碰到无穷无尽的混蛋和笨蛋,但总会有一些人,让你感觉到生命的温暖和满足,让你感慨生命的"不虚此行"。

罗永浩
12

评论

评论

  • 一稿计划 说道:
    发表于:2019-08-28 11:30

    我当时是把所有的文章重新写了一遍😂

    回复
  • Rares 说道:
    发表于:2019-08-28 13:36

    看到的是过程,没有看到体会哈。

    回复
    1. 卷土 说道:
      发表于:2019-08-28 17:55

      @Rares 体会就是最后那两句话,哈哈

      回复
  • 纬八路随笔 说道:
    发表于:2019-08-28 22:19

    要是我,肯定一篇一篇的重发。

    回复
  • 哥斯拉 说道:
    发表于:2019-08-30 12:49

    wordpress很强大,制定性强。

    回复
      1. back 说道:
        发表于:2019-09-26 8:31

        @卷土 可以做下优化,访问速度杠杠的。

  • Qicloud 说道:
    发表于:2019-08-30 14:58

    有想wp的想法,一直没空弄。你这一下省了我好多事。收藏了收藏了

    回复
  • 琛苏 说道:
    发表于:2019-08-30 17:28

    这个主题还是挺漂亮的,可惜作者不单卖。

    回复
  • zmmio 说道:
    发表于:2019-09-17 16:14

    好东西,有时间试一下。

    回复
  • 雨落凋殇 说道:
    发表于:2019-09-29 21:07

    typercho是用markdown编写的文章,转wordpress排版会不会乱了?

    回复
16
分享

哦不,糟糕! 您的浏览器不支持。本网站针对这些浏览器进行了优化。请升级到支持的浏览器,并尝试再次加载网站。

立即升级