最近手头有点紧吧,所以想弄个讨饭的小功能,记录开始:

打开主题根目录下的post.php在文章底部位置添加以下代码(记得把收款图路径改为自己的)

<!-- 增加打赏功能-->
   <div style="padding: 10px 0; margin: 20px auto; width: 100%; font-size:16px; text-align: center;">
    <button id="rewardButton" disable="enable" onclick="var qr = document.getElementById('QR'); if (qr.style.display === 'none') {qr.style.display='block';} else {qr.style.display='none'}">
        <span>打赏</span></button>
    <div id="QR" style="display: none;">
        <div id="wechat" style="display: inline-block">
            <a class="fancybox" rel="group">
                <img id="wechat_qr" src=<?php $this->options->themeUrl('img/Pay/WeChatPay.JPG'); ?> alt="WeChat Pay'"></a><!--记得把收款图路径改为自己的-->
            <p>微信打赏</p>
        </div>
        <div id="alipay" style="display: inline-block">
            <a class="fancybox" rel="group">
                <img id="alipay_qr" src=<?php $this->options->themeUrl('img/Pay/AliPay.JPG'); ?> alt="Alipay"></a><!--记得把收款图路径改为自己的-->
            <p>支付宝打赏</p>
        </div>
    </div>
</div>

reward-post.png

header.php中引用css样式

<link rel="stylesheet" href="<?php $this->options->themeUrl('css/qr.css'); ?>">
样式表如下(可按需自行更改)
#QR {
    padding-top:20px;
}
#QR a {
    border:0
}
#QR img {
    width:180px;
    max-width:100%;
    display:inline-block;
    margin:.8em 2em 0 2em
}
#rewardButton {
    border:1px solid #ccc;
    line-height:36px;
    text-align:center;
    height:36px;
    display:block;
    border-radius:4px;
    -webkit-transition-duration:.4s;
    transition-duration:.4s;
    background-color:#fff;
    color:#999;
    margin:0 auto;
    padding:0 25px
}
#rewardButton:hover {
    color:#80766e;
    border-color:#80766e;
    outline-style:none
}

reward-css.png

3、完工,看下效果

ps:后来发现独立页面没有打赏按钮,只好再补充下,在主题根目录下的page.php中添加打赏功能的代码即可

reward-demo.png

原文:
547的Blog - 萌萌哒 ~在Typecho文章底部添加打赏功能的实现-https://www.wusiqi.cn/archives/445/

虽然目前这小站没啥人看,也没人评论,但在我逛博客吧的时候看下评论下面有算术题验证,当然也有很多博主用图片验证码、谷歌人机验证之类的,但是我就是想弄一个算数验证h_h
正文开始:

进入你的站点后台(控制台->外观->编辑当前外观)->打开functions.php在文章最后添加如下代码

/*评论 算术验证码*/
function themeInit($comment){
    if ($comment->is('single')) {
        $comment = spam_protection_pre($comment);
    }
}
function spam_protection_math(){
    $num1=rand(0,9);
    $num2=rand(0,9);
    echo "<label for=\"math\">请输入 <i>$num1 + $num2 = ?</i> 的计算结果:</label>\n";
    echo "<input type=\"text\" name=\"sum\" class=\"text\" value=\"\" size=\"25\" tabindex=\"4\">\n";
    echo "<input type=\"hidden\" name=\"num1\" value=\"$num1\">\n";
    echo "<input type=\"hidden\" name=\"num2\" value=\"$num2\">";
}
function spam_protection_pre($commentdata){
    $sum=$_POST['sum'];
    switch($sum){
        case $_POST['num1']+$_POST['num2']:
            break;
        case null:
            throw new Typecho_Widget_Exception(_t('有一道数学题还在等着你,往哪跑?<a href="javascript:history.back(-1)">回去算题</a>','评论失败'));
            break;
        default:
            throw new Typecho_Widget_Exception(_t('再给你一次按计算器的机会!请<a href="javascript:history.back(-1)">掏出计算器</a>','评论失败'));
    }
    return $commentdata;
}

math-1.png

comment.php中恰当的位置添加如下代码调用即可。

<p>
   <!--引用评论验证-->
   <?php spam_protection_math();?>
</p>

math-2.png

参考:
大嘴狗的小空间-http://www.sirit.com.cn/index.php/archives/418/
小米笔记-https://notemi.cn/typecho-non-plug-in-implementation-of-comment-arithmetic-verification-code.html#comment-2330

为了站点安全性考虑,修改网站后台的访问地址就可以提高一定的安全系数。
那么针对Typecho,我们只要这样,这样,那样就可以了。

将根目录下的admin文件夹重命名。

change-typecho-admin-1.png

编辑根目录下的 config.inc.php文件,在20行的位置

把 '/admin/' 改成你之前重命名的名字。

/** 后台路径(相对路径) */
define('__TYPECHO_ADMIN_DIR__', '/admin/');

change-typecho-admin-2.png

在地址栏输入你的后台地址美美地玩耍吧。

看到现在越来越多的网站都加上了小绿锁(开启了ssl)这让强迫症的我有些按耐不住。记录下开启小绿锁过程。

先去腾讯云申请一年的免费ssl证书

申请到之后添加解析并打开防火墙的443端口(我的环境“阿里云+宝塔”防火墙端口需要都设置)
成功添加解析后发现还是没有小绿锁,后来发现宝塔的ssl也要配置下(把腾讯云的证书下载后配置即可-我的是ngix。强制https请按需打开)

ssl-aliyun-dns.png
ssl-aliyun-bt-firewall.png

更改后台设置( 设置 -> 基本设置 -> 站点地址)将网址改成https的网址并配置config.inc.php文件,增加以下代码

/** 开启HTTPS */
define('__TYPECHO_SECURE__',true);

ssl-config-admin.png

由于Chrome浏览器对HTTPS要求较高,Firefox已经显示小绿锁,可是Chrome还是有警告提示,F12查看,评论表单的action地址还是HTTP,找到站点主题目录下的
comments.php
文件,并搜索 $this->commentUrl() 好像在第20行的样子
将其替换为

echo str_replace("http","https",$this->commentUrl());

然后保存。

ssl-comments-sql.png

更新文章中引用的地址为 HTTPS 地址,进入数据库->执行以下SQL指令

UPDATE `typecho_contents` SET TEXT = REPLACE( TEXT, 'http://imjiuki.cn/', 'https://joooqi.cn/');
UPDATE `typecho_comments` SET TEXT = REPLACE( TEXT, 'http://imjiuki.cn/', 'https://joooqi.cn/');
UPDATE `typecho_users` SET TEXT = REPLACE( TEXT, 'http://imjiuki.cn/', 'https://joooqi.cn/');
UPDATE `typecho_options` SET TEXT = REPLACE( TEXT, 'http://imjiuki.cn/', 'https://joooqi.cn/');
UPDATE `typecho_metas` SET TEXT = REPLACE( TEXT, 'http://imjiuki.cn/', 'https://joooqi.cn/');

链接替换为自己的网站 写入数据库。
typecho_contents为表名,text为字段名。

链接替换为自己的网站 写入数据库。
typecho_contents为表名,text为字段名。

设置http跳转https(按需配置)

我的设置见第2步->把宝塔的强制https打开
手动配置见下供参考-将下方代码添加到Ningx配置文件里面去(未测试-无图)
server
{

    listen 80;
    server_name imjiuki.cnm www.imjiuki.cn;
    rewrite ^(.*) https://joooqi.cn$1 permanent;

}
网址请自行更改

看到有些博主设置了Gravatar头像的https,我看了下现在的1.1版本已经支持https了,如果不放心的小伙伴也可以自己去改下

位置在typecho根目录->var->Typecho->Common.php第937行的位置将'http://www.gravatar.com'改为'https://www.gravatar.com'即可
最后就可以享受你的小绿锁了e.e

参考:
秋刀鱼-Typecho 开启全站化 Https(SSL)小绿锁 https://qiudy.cc/182.html/comment-page-1#comment-239
陈德馨-Typecho启用https访问的实现方法与教程 https://www.chendexin.com/archives/548.html