分类 折腾博客 下的文章

尚寂新 - 不为建站,只为折腾

本站重新开启评论邮件提醒0P

其实这个应该和之前更改一起更新的,就是因为懒,没弄。经过小伙伴的提醒...又想起这件事了23333

插件名:LoveKKComment
作者已经把插件送到TE插件仓库里了,以后的更新都会在这里。经过初步的了解..qwq,他这个是两个插件捏一块的,一个是找回密码,一个是评论提醒。

再一次的给站点添加 ajax 评论体验0P

我所周知,在全站 pjax 的情况下实现 ajax 评论是一个很炸脑袋的事情。经过了很多试验踩坑之后,最终还是采用了他的方案。
https://eriri.ink/archives/typecho-ajaxcomment.html
其实看完他的这个之后,看着注释标的也挺比较全,然后就用了这套方案,然后进行了一顿魔改之后应用到了我的站上。这套的优势就是用 Typecho 原生的接口,评论处理什么的直接使用原有的插件就可以。

2019 08/07 14:40 折腾博客

高考完也有两个月了 折腾博客也有点退烧了...
该折腾完的都已经折腾完 再弄的话也就是小修小改

首先我弃坑了 WeiboSync 这个插件

有评论也反映到了不好使了 感觉应该是接口失效了 对微博连博客这个也退火了 于是弃坑之😜
感兴趣的可以去原文章看看 然后翻翻微博的文档 之前做成的插件也一直在 Github 上开源着的 有兴趣的小伙伴们可以自己动下手 也许会比这个更好 )确信23333

心血来潮想换用 WordPress

主要是看着 WordPress 可以用 APP 管理嘛 qwq ... 备份了博客的目录和数据库 然后导出了给 WordPress 用的 xml 格式的数据 弄完之后 折腾新主题的时候 发现.... 真的是退火了 只熟悉 Typecho 的主题结构是完完全全不够的 也是遇到了不少的麻烦 再加上(原版 WP 基于原版主题删掉各种 CSS 与 JS )前台也慢腾腾后台也慢腾腾 最后抵不住直接登录虚机后台....
Typecho 的数据就一键回来了 😂

闲着没事 又多了个功能

迫于无聊 去 Typecho 的论坛的插件版上看了看 看到了一个 BiliBili 动态显示到博客的插件 他那个是基于 RSSHub 的
等下... RSSHub 不是在 Github 上是开源的吗 😆
侥幸心理 看看源码里有没有直通B站的方法(RSSHub公用的服务器太慢了) 然后就不出意外的发现了

提醒!请勿滥用(免责免责)🤣

然后很开开心心的把自己站上那个微语那个拿评论做的给删掉了 一番折腾之后 好不容易给弄上了 顺便观察到了B站数据层的变革 还顺便给接口请求数据那块加了一道缓存(防止资源被刷爆被B站发现😉)
开心之余 没忘看看结果 过了几个小时之后...PHP 报错了!
本以为是异步的问题 然后换用了 curl 后还是不行...
吓我一大跳 还以为被B站发现了接口被限制了 研究了好大一阵 突然发现我转发的有一条 UP 主的动态的内容里含有 emoji .... 破案了
为了验证 从网上拽过来一个过滤 emoji 的 function 重置了缓存时间 刷新一下 完美解决
puuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu.....
然后觉得这样还是不太好 又折腾了一会把数据库转成了 utf8mb4 的结构 这次弄完之后不仅是那块处理 emoji 都无压力了 全站都可以支持 emoji 了 哈哈哈😂

Chrome 浏览器(我知道的) 在输入框里可以右键 有一个“表情符号”的选项 点击那块就能直接用 emoji 表情 由于 emoji 的特征吧 不同设备不同浏览器观赏 emoji 表情的时候显示的效果是肯定不一样的 属于正常现象

至此成功实现功能

文章过时警告

看别的博客 尤其是 WordPress 博客大多都有的功能 弄完了上一个之后迫不及待去试一下 结果一路弄下来异常的顺畅 最后修改的时间或者发布时间比对下现在的时间就可以 主要代码如下(PHP)(Typecho)

// 间隔时间超过半年后提醒 判断的是最后修改时间
if(time() - date($this->modified) > 60*60*24*30*6){
        $ji_post_left_cha = time() - date($this->modified);
        $ji_post_left_day = $ji_post_left_cha / 86400;
        echo intval($ji_post_left_day);
    }

然后又在 这里 看到个样式不错 经过同意之后移植到了这里

移除 Google Adsense 广告

最近才发现 Google Adsense 一旦大姨妈 直接把页面的 DOM 加载给摁死 弄的视觉上看得像站点卡卡的 于是把关于广告的都给删掉了...(尽管之前 Footer 区有关闭广告的按钮)

最后

基本上吧...这两个月就折腾这些吧 感觉没点稀奇东西 真的折腾不动了 也看过关于个人站长的活路 也有萌新来请教过 没有任何基础 只是一种用了之后很 nb 的感觉 更甚的是手把手教学都不是那意思 基本上这种的直接劝退到自媒体平台上 B站啊简书啊什么的弄 只要你去 一点代码都看不到 这也是自媒体平台的好处吧 但也是自媒体平台的弱点 不给开放代码级别的自定义(至少我入B站的前一天 B站的个人空间还是可以自定义 CSS 的...)
很期待 有新的东西 吸引我的东西 闯进我的视野里

本站开启Google Adsense广告1P

google-adsense.png

起因

看到隔壁泽泽dalao申请了Google Adsense,再加上之前也是申请过,于是前几周想办法去申请了一下。具体就是填写一些收款地址什么的(用于接收PIN码,赚了十刀之后会给你邮寄PIN码验证身份)。

博客使用jQuery实时获取评论头像0P

昨天在泽泽那块看到了《使用AJAX实时获取评论头像》一文,感觉这种在主题里内嵌API的方式会浪费服务器性能,毕竟频繁访问API多多少少会对机器产生一些影响,故有此文

Typecho微博文章同步插件(WeiboSync)1P

当发布文章时,能够将文章的标题和链接同步至你的微博
演示效果

2018 06/03 16:34 折腾博客

2018-06-06补充:微博的API已改,故本文部分内容不适用
主要原理:来自张戈博客(适应于WordPress)
文章链接:https://zhangge.net/4947.html

下面是他的代码 为了方便直接引用一下

function post_to_sina_weibo($post_ID) {
   /* 鉴于很多朋友反馈发布文章空白,临时加上调试代码,若无问题可删除此行,若有问题请将错误信息在本文留言即可 */
   ini_set('display_errors', true);

   /* 此处修改为通过文章自定义栏目来判断是否同步 */
   if(get_post_meta($post_ID,'weibo_sync',true) == 1) return;

   $get_post_info = get_post($post_ID);
   $get_post_centent = get_post($post_ID)->post_content;
   $get_post_title = get_post($post_ID)->post_title;
   if ($get_post_info->post_status == 'publish' && $_POST['original_post_status'] != 'publish') {
     $appkey='1034947262';  /* 此处是你的新浪微博appkey,不修改的话就会显示来自张戈博客哦! */
     $username='微博用户名';
     $userpassword='微博密码';
     $request = new WP_Http;
     
     /* 获取文章标签关键词 */
     $keywords = ""; 
     $tags = wp_get_post_tags($post_ID);
     foreach ($tags as $tag ) {
        $keywords = $keywords.'#'.$tag->name."#";
     }
     /* 修改了下风格,并添加文章关键词作为微博话题,提高与其他相关微博的关联率 */
     $string1 = '【文章发布】' . strip_tags( $get_post_title ).':';
     $string2 = $keywords.' 查看全文:'.get_permalink($post_ID);

     /* 微博字数控制,避免超标同步失败 */
     $wb_num = (138 - WeiboLength($string1.$string2))*2;
     $status = $string1.mb_strimwidth(strip_tags( apply_filters('the_content', $get_post_centent)),0, $wb_num,'...').$string2;

     $api_url = 'https://api.weibo.com/2/statuses/update.json';
     $body = array('status' => $status,'source' => $appkey);
     $headers = array('Authorization' => 'Basic ' . base64_encode("$username:$userpassword"));
     $result = $request->post($api_url, array('body' => $body,'headers' => $headers));

     /* 若同步成功,则给新增自定义栏目weibo_sync,避免以后更新文章重复同步 */
     add_post_meta($post_ID, 'weibo_sync', 1, true);
   }
}
add_action('publish_post', 'post_to_sina_weibo', 0);

/*
//获取微博字符长度函数 
*/
function WeiboLength($str)
{
    $arr = arr_split_zh($str);   //先将字符串分割到数组中
    foreach ($arr as $v){
        $temp = ord($v);        //转换为ASCII码
        if ($temp > 0 && $temp < 127) {
            $len = $len+0.5;
        }else{
            $len ++;
        }
    }
    return ceil($len);        //加一取整
}
/*
//拆分字符串函数,只支持 gb2312编码  
//参考:http://u-czh.iteye.com/blog/1565858
*/
function arr_split_zh($tempaddtext){
    $tempaddtext = iconv("UTF-8", "GBK//IGNORE", $tempaddtext);
    $cind = 0;
    $arr_cont=array();
    for($i=0;$i<strlen($tempaddtext);$i++)
    {
        if(strlen(substr($tempaddtext,$cind,1)) > 0){
            if(ord(substr($tempaddtext,$cind,1)) < 0xA1 ){ //如果为英文则取1个字节
                array_push($arr_cont,substr($tempaddtext,$cind,1));
                $cind++;
            }else{
                array_push($arr_cont,substr($tempaddtext,$cind,2));
                $cind+=2;
            }
        }
    }
    foreach ($arr_cont as &$row)
    {
        $row=iconv("gb2312","UTF-8",$row);
    }
    return $arr_cont;
}

感觉改他的关键点就在获取文章发布事件和判断是否为二次编辑(如果二次编辑之后发出去的微博会重复 首次发布文章的时候发出去一条微博才是正常的)

Typecho_Plugin::factory('Widget_Contents_Post_Edit')->finishPublish = array('Pluginname', 'Functionname'); Typecho_Plugin::factory('Widget_Contents_Page_Edit')->finishPublish = array('Pluginname', 'Functionname');
class Pluginname {
    public static function Functionname()
    {
    //写到这里就ok了
    }
}

刚才百度到的整理了一下...
就差判断是否提交的文章是二次编辑过的了

刚才又看了遍WordPress版的源码 他是通过类似于Typecho的那种自定义字段搞的 当首次发文时,同步微博的同时会把一个自定义字段的数目+1 然后当更改文章时先判断那个自定义字段是否有东西 如果有东西就不发微博

我想出来个办法 先调用发布日期和最后修改日期的函数 然后把他们都给转成能计算的那种数值 然后计算并判断这个

if($修改日期-$发布日期=0;){
//send code write in here
}


好了我自问自答完了 感兴趣的dalao可以自行写出来用我这边过两天抽个空我试试

获取图片的话 直接调用之前适配MIP用的那个就好

补充:微博密码变量那块可以设置为base64加密后的密码 可以到 base64.xpcha.com 进行加密

Typecho文章页面的熊掌号内容改造1P

熊掌号
去年申请了熊掌号,因为当时感觉熊掌号没什么用处,于是解绑之。但发现我解绑之后,站点的手机搜索结果展现还是展现出了熊掌号的标识。为了完善一下这块的显示吧,于是决定重新弄回熊掌号。
因为实名认证什么的之前都弄过,只需要把原先的熊掌号与站点重新进行绑定就OK了。另外还发现了百度的扫脸认证,看熊掌号的几个站上推绑定脸的功能之后,绑之。

利用del标签给文章添加一些"黑幕"1P

在浏览萌娘百科的时候 会时不时的看到文章里有个黑色的小块 当把鼠标移向它的时候 你会发现里面有新日暮里世界(手动滑稽) 这里面通常是有一些梗啊什么的 或者是Wiki编辑者调皮加上的东西 就像这样
demo

为没有设置Gravatar头像的评论者显示随机头像0P

常用邮箱的人不一定知道有Gravatar这东西 因而造成评论区很多人都没有头像显示 只返回了个了默认头像
之前也从泽泽主题上扒下来过评论显示QQ头像 具体应用的时候为了不影响性能也没做到不暴露QQ号 而且头像显示的源和我现在用的Gravatar头像CDN源是一个(当然) 有的时候tx的服务器会有点慢...
所以 还是用Gravatar吧