迷你日志主题十分简洁,一旦切换其他的主题设置就没了,为迷你日志主题添加主题备份和恢复功能。
一、确定文件备份的路径
在当前主题目录下建立 tmp 目录,赋予可写权限777,linux 系统赋权命令如下: chmod 777 -R tmp/
二、在主题 funcitons.php 文件的 themeConfig($form){} 方法中添加编写代码
通常将备份恢复的模块放在网页的最前面,将下面的代码,复制到themeConfig($form){}最前面就可以。

// 主题配置备份和恢复--开始//
echo '<div style="border:1px dashed green;padding:1rem;">';
echo '<div style="color:red;font-weight:700;margin-bottom:.5rem">备份前请确保主题目录下建立了tmp目录,并且被赋予可写权限</div>';
$theTheme = Helper::options()->theme;
$db = Typecho_Db::get();
// 设置备份及恢复目录
$backPath = __DIR__ . '/tmp/' . $theTheme . '.txt';

// 获取保存的主题配置信息
$themeConfStr = $db->fetchRow($db->select()->from('table.options')->where('name = ?', 'theme:' . $theTheme))['value'];

// 判断是否要备份配置
if (file_exists($backPath)) {
    $backstr = file_get_contents($backPath); //将整个文件内容读入到一个字符串中
} else {
    $backstr = '';
}

if (strcmp($backstr, $themeConfStr) === 0) {
    echo '当前主题保存的配置信息与备份的配置信息一致,无需备份和恢复';
} else {
    echo '<div style="font-weight:700;margin-bottom:.5rem;">当前主题保存的配置信息与备份的配置信息<span style="color:red;">不一致,请确认是否需要备份或恢复</span> </div><form action="" method="post"><input id="backupbtn" type="submit" name="backup" value="备份主题配置"><input id="restorebtn" type="submit" name="restore" value="恢复主题配置"></form><br>';
}

if ($_POST["backup"]) {
    $backThemeCon = file_put_contents($backPath, $themeConfStr);
    if ($backThemeCon) {
        echo '<script>alert("备份成功")</script>';
        echo "<script>window.location.replace(window.location.href)</script>";
    } else {
        echo '备份失败,请检查 tmp 目录是否有可写权限';
    }
}

if ($_POST["restore"]) {
    if (file_exists($backPath)) {
        $str = file_get_contents($backPath); //将整个文件内容读入到一个字符串中
        $updateThemeConQuery = $db->update('table.options')->rows(array('value' => $str))->where('name = ?', 'theme:' . $theTheme);
        $updateThemCon = $db->query($updateThemeConQuery);
        if ($updateThemCon) {
            echo '<script>alert("恢复成功")</script>';
            echo "<script>window.location.replace(window.location.href)</script>";
        } else {
            echo '恢复失败,请检查主题配置备份数据是否合格';
        }
    }
}
echo '</div>';
// 主题配置恢复备份--结束//