分享 3122 16

    折腾博客 之 Wordpress to Typecho

    AI摘要:本文介绍了将WordPress博客转换为Typecho博客的过程。作者遇到了WordPress自动安装插件导致网站无法访问的问题,于是决定转投Typecho。文章详细介绍了转换的步骤,包括安装Typecho、下载插件WordPressToTypecho、移动附件资料、修改数据库中的链接、设置伪静态等。此外,还介绍了一些Typecho插件和主题的使用方法。

    前言

    起因是wordpress会自动安装一个名为wpcode的插件,每次删除卸载之后仍会自动安装,有一次直接导致网站无法访问,百度不得其解.重装也不起效.
    于是弃之.
    转投typecho的怀抱.

    环境

    PHP 8.2
    Mysql 5.5

    转换

    先安装Typecho .
    1.下载插件 WordpressToTypecho,配置好数据库的相关设置,
    参考 https://docs.typecho.org/import
    2.点击转换成功之后,把附件资料从WordPresswp-content/uploads目录下全部移动到Typechousr/uploads目录下,保持目录结构不变。
    3.在数据库中执行

    update typecho_contents set text=replace(text,'wp-content/uploads','usr/uploads')

    4.设置伪静态,保持与wordpress相同的链接结构

    使用

    插件

    1.AAEditor Markdown编辑器功能强大
    2.AISummary 使用ChatGPT或者Gemini生成文章摘要.开箱即用.
    看到木木老师有分享这个网站,可以使用我的aff注册,谢谢
    https://burn.hair/register?aff=a8fr

    新用户赠送 2500000 token,约等于 5 USD
    邀请用户注册,双方各得 1000000 token,约等于 2 USD

    3.Links 友情链接插件
    4.ShortLinks 把外链转换成内链
    php8.2报错需修改Plugin.php

    //$str = str_replace(array("\r\n", "\r", "\n"), "|", $textarea);

    // 检查 $textarea 是否为 null,如果是,设为一个空字符串
    $textarea = $textarea ?? '';
    // 然后你可以对其使用 str_replace
    $str = str_replace(array("\r\n", "\r", "\n"), "|", $textarea);

    5.SiteMap 网站地图
    6.WordsCounter 字数统计
    7.cosUploadV5 腾讯COS对象储存

    主题

    主题使用开源的 Matcha
    1.修改
    想让首页显示的摘要为AI生成的摘要
    matcha/includes/posts.php中的

    <div class="post-content" itemprop="articleBody">
    <?php Matcha::excerpt($this); ?>
    </div>

    替换为

    <div class="post-content" itemprop="articleBody">
        <?php
        // 判断是否存在自定义字段summary并输出,否则输出自动生成的摘要
        if($this->fields->summary){
            echo $this->fields->summary;
        } else {
            Matcha::excerpt($this);
        }
        ?>
    </div>

    主题使用Sunny Lite!时,修改article.php

      <?php echo get_Abstract($this,300); ?>

    替换为

    <?php echo $this->fields->summary;?>

    2.显示页面加载时间
    在主题的 Functions.php 中加入以下代码

    /**
    * 页面加载时间
    */
    function timer_start() {
    global $timestart;
    $mtime = explode( ' ', microtime() );
    $timestart = $mtime[1] + $mtime[0];
    return true;
    }
    timer_start();
    function timer_stop( $display = 0, $precision = 3 ) {
    global $timestart, $timeend;
    $mtime = explode( ' ', microtime() );
    $timeend = $mtime[1] + $mtime[0];
    $timetotal = number_format( $timeend - $timestart, $precision );
    $r = $timetotal < 1 ? $timetotal * 1000 . " ms" : $timetotal . " s";
    if ( $display ) {
    echo $r;
    }
    return $r;
    }

    footer.php 合适位置插入

    <?php echo timer_stop();?>

    或者

    <a href="javascript:(0)" id="pagetimes"></a>
    <script>
    document.getElementById('pagetimes').innerHTML = '<img src="https://img.shields.io/badge/页面加载耗时:-<?php echo timer_stop();?>-green">';
    </script>

    3.使用memos API增加说说页面
    把 page-memos.php放在模板matcha

    然后在后台新建独立页面-选择模板
    添加字段中自定义
    memos= memos地址 默认为https://memos.imsun.org
    memostag = 使用的tag 可以选择默认,默认为说说
    creatorId = memos的ID,默认为1
    memosname = 显示的昵称
    memosava = 显示的头像

    下载地址

    4.关闭非中文语系的评论
    查找comments.php文件中

    <?php if($this->allow('comment')): ?>

    替换为

    <?php if($this->allow('comment') && stripos($_SERVER['HTTP_ACCEPT_LANGUAGE'], 'zh') > -1): ?>

    5.打赏
    根据插件Donate提取

    <!--打赏  -->
    <script type="text/javascript" src="https://blogcdn.loliko.cn/donate/index_wx.js?121"></script>
    <link rel="stylesheet" type="text/css" href="https://blogcdn.loliko.cn/donate/style_wx.css?121" />
    <div class="donate-panel"> 
      <div id="donate-btn">赏</div> 
      <div id="qrcode-panel" style="display: none;"> 
        <div class="qrcode-body"> 
          <div class="donate-memo"> 
          <span id="donate-close">关闭</span> 
        </div> 
        <div class="donate-qrpay"> 
         <img id="wxqr" src="https://blogcdn.loliko.cn/donate/2in12.png" /> 
        </div> 
         </div> 
       </div> 
    </div> 

    参考
    1.https://docs.typecho.org/import

    老孙
    资深网民孙先生

    Warning: Undefined array key "HTTP_ACCEPT_LANGUAGE" in /www/sites/imsun.org/index/usr/themes/farallon/comments.php on line 4

    Deprecated: stripos(): Passing null to parameter #1 ($haystack) of type string is deprecated in /www/sites/imsun.org/index/usr/themes/farallon/comments.php on line 4
    1. ACEVS
      2024-09-20 13:30

      遇到过几次。删除最近安装的插件删除没有效果话。就是用一个全新的wp zip 用新的两个文件夹替换掉wp-includes
      wp-admin
      安全软件插件也可以考虑用
      typecho 也不错。小巧

        1. 老孙 作者
          2024-09-20 14:40
          @ACEVS

          Typecho的定位就是轻量级博客..
          Wordpress 不够轻

          前些天把wordpress建的站的备份文件下载下来,一杀毒,竟然有一千多后门和病毒,我都惊了

    2. 灰常记忆
      2024-04-13 14:31

      typecho确实轻巧

        1. 老孙 作者
          2024-04-15 08:35
          @灰常记忆

          必须是.但是wordpress的后台更丰富,也更容易中招.国内非官的插件和模板一言难尽.

            1. 灰常记忆
              2024-05-01 20:19
              @老孙

              😆国内开源环境一塌糊涂 我现在全用国外

    3. 趣知识
      2024-04-09 16:00

      Typecho 确实不错啊,我用的就是,不过现在全转成静态页了

        1. 老孙 作者
          2024-04-09 17:08
          @趣知识

          如果没有评论之类的话,倒是可以.🤣.我之前有尝试过,话说,如果生成html的话,还不如去玩hexo了.

    4. Kevin
      2024-04-07 16:14

      因为你中毒了!因为我就是哈哈哈哈,而且不止是wpcode,还有很多类似开了aff的插件,最后我搞了wpdefnc暂时缓解

        1. 老孙 作者
          2024-04-09 17:06
          @Kevin

          我想应该也是,不过没办法解决,干脆直接就转了typecho.😁

    5. 菊座
      2024-04-05 22:11

      这个不错啊 又想回typecho了

        1. 老孙 作者
          2024-04-06 16:00
          @菊座

          😁那就回来!!