阅读视图

发现新文章,点击刷新页面。

24-11月小结

转眼间,12月已然到来,2024年也进入了倒计时。回顾过去的11月,发生了不少值得记录的事情。

生活篇

月初,我陪伴媳妇儿参加了下半年的事业单位考试,却不幸忘记了自己的补考。当我意识到这一点时,已经是考试过去的第二天天。询问老师后得知,唯一的解决方案是延迟一年毕业。老师在十月份就已经给我发送了通知,但我却因为疏忽错过了2号的补考。现在,我只能静静地等待下一次机会。

在台球技术上,我似乎越来越退步了。每天排队玩耍,我总是最快下台的那个。看来,我需要在抖音上找些教学视频来提升自己的技术了。尽管技术不佳,但我对台球的热爱依旧不减。

值得高兴的是,妹妹的签证终于下来了,她可以开始她的留学之旅了。这是她忙碌了大半年的成果,家里人都为她感到高兴。

在网上,我看到了罐罐茶,考虑到今年不打算生炉子,我决定购买一个电热炉来炖茶。在挑选过程中,我遇到了难题:喜欢的太贵,便宜的又看不上。最终,我选择了一款性价比适中的电热炉,目前来看,使用体验还算不错。

在抖音上,我观看了深圳禁摩案的视频,深刻感受到了知识的力量。

十一月的末尾,迎来了冬天的第一场雪。为了更好地控制室内温度,我给房间买了个温湿度表。房间里的温度只有十五六度,有时候冻得脚疼。当我把房东叫来时,他竟然怀疑是不是温度计坏了。但冷不冷,我自己还是能分辨的。

工作篇

这个月,县上给我们配了一辆消防摩托车,但我感觉它并不实用。发动起来很慢,而且只能一人操作,更适合夏天使用。考虑到加油的问题,我怀疑它可能永远只能待在仓库里了。

月底,我去市区参加了培训,过程相当无聊。培训持续了两天,其中一天还占用了周六的时间。说实话,我并不想参加,本想让同事帮忙顶替,但一听周六也要开会,大家都不愿意去了。

博客篇

对于博客主题,我最终还是选择了一为的主题。知更鸟虽然功能强大,但我觉得它过于臃肿,样式也不是我喜欢的。

在时光记忆的网站里,我偶然发现了博客以前的样式,慢慢浏览时发现有些文章似乎丢失了。这让我意识到,迁移过程中可能丢失了一些内容。看来,备份真的非常重要。

结石是真的疼啊

结石真的是疼啊,记得上次知道是结石还是十年前,我上高中那会儿,腹部疼的不行了,我爸妈把我拉到医院,拍片子后医生告知说是尿结石需要碎石,临近县城有激光碎石,于是叫了辆车,就出发了,快到医院时,由于路途颠簸,下去上了趟厕所,不疼了,遂折返。就这样一直再没疼过。

刚上班一年多,有次在宿舍疼的不行了,叫了同事把我拉到卫生院,做了B超说是什么也没看到,我那会儿就想着应该是结石,好多年前上高中那会儿疼的时候跟这一模一样,记忆犹新。

前天晚上吃完晚饭,左下腹好像有股岔气,过了会儿慢慢疼了起来。我想不是吧,这就又开始了,想想都害怕。床上翻来覆去很难受,后面还把吃的晚饭都吐了出来。想着这样也不是办法,于是下去在院子里走路,走了几圈子终于慢慢不疼了,我也松了口气。开始疼到现在经历了三个多小时。

第二天也就是昨天早上睡醒也没事儿,下去到食堂里吃了早餐,溜达了一圈后又开始了,噩梦的一天开始持续了。疼的我有点儿害怕时我去了卫生院,结果被告知做B超的大夫今天不在,又去了药房,大夫看了一下说好像是阑尾,建议我去县医院做ct或者b超看看,又给我开了几种消炎药。我回去吃了药还是疼,没办法我就叫了同事去县城。

到县城已经快12点了,我去挂了急诊科,大夫给我按了按,基本上确定结石,让我去做个ct看看,做完之后拿去给大夫看,大夫说是肾结石,结石只有0.2毫米,跟米粒差不多大,说是快到膀胱了,让我多喝水,多跳,很快就会排出来。

回去以后我在院子里跳,走路,一直到晚上睡觉。还是隐隐作痛,一晚上基本上没睡觉,每隔一小时就醒来一次,转个身,就这样一直持续到了今天早上7点钟,终于基本上不疼了。

看来还是要加强锻炼,不能一直在办公室坐着,要多喝温水,从此以后不喝茶以及饮料!

博客添加memos的方法

搭建memos

项目地址:https://github.com/usememos/memos

我使用的是宝塔docker部署,其实宝塔docker可以一键部署,我试了不管用。不过使用官方的教程也是非常简单。
首先保证安装了docker以及Docker Compose。

1、在宝塔面板-安全-系统防火墙,放行5230端口。
2、在终端输入以下代码

docker run -d --name memos -p 5230:5230 -v ~/.memos/:/var/opt/memos neosmemo/memos:stable

/.memos/ /var/opt/memos,该目录将用作本地计算机上的数据目录,而该目录是 Docker 中卷的目录,不应修改。
这时已经部署好了,访问http://IP地址:5230就可以了。

首次访问会显示注册,注册的账号密码就是你的管理员账号密码了。

接下来就可以进行你自己的操作了,可以选择方向代理。

升级memos

若要让你的memos显示到最新版本,可以进行以下操作。尽管很多博友说有未知风险,划不来更新。但我就是喜欢最新版本,不仅仅是memos。

首先,停止并移除旧容器:

docker stop memos && docker rm memos

虽然是可选的,但建议备份数据库:

cp -r ~/.memos/memos_prod.db ~/.memos/memos_prod.db.bak

接下来,拉取最新的备忘录图像:

docker pull neosmemo/memos:stable

按照启动 memos部分中概述的步骤启动 Memos。升级后的 Memos 实例现在将启动并运行,并具有最新的增强功能和功能。

搭建评论Twikoo评论系统

项目地址:https://github.com/twikoojs/twikoo

评论系统还有博友推荐的artalk,我不选择它的原因是我安装的最新版本的memos搭配artalk不显示,有可能是某项的类写错了。

还是使用的docker部署,主要是方便。

注意 私有部署的环境需配合 1.6.0 或以上版本的 twikoo.js 使用

打开终端
Docker

docker run --name twikoo -e TWIKOO_THROTTLE=1000 -p 8080:8080 -v ${PWD}/data:/app/data -d imaegoo/twikoo

Docker Compose

    version: '3'
services:
  twikoo:
    image: imaegoo/twikoo
    container_name: twikoo
    restart: unless-stopped
    ports:
      - 8080:8080
    environment:
      TWIKOO_THROTTLE: 1000
    volumes:
      - ./data:/app/data

默认端口 8080,如果遇到端口冲突问题,请修改命令中的 8080:8080 为 自定义端口:8080。(宝塔里肯定会冲突,所以还是修改吧)
访问http://IP地址:8080出现以下就证明成功了

{
"code": 100,
"message": "Twikoo 云函数运行正常,请参考 https://twikoo.js.org/frontend.html 完成前端的配置",
"version": "1.6.32"
}

最后,就是开启反向代理了。

memos和评论系统结合起来

登录你的memos,在设置-系统-自定义脚本里,插入以下代码,修改https://artalk.duanxiansen.com/为自己的twikoo地址即可

    var twikooENV = 'https://artalk.duanxiansen.com/'
function addTwikooJS() { 
  var memosTwikoo = document.createElement("script");
  memosTwikoo.src = `https://cdn.staticfile.org/twikoo/1.6.32/twikoo.all.min.js`;
  var tws = document.getElementsByTagName("script")[0];
  tws.parentNode.insertBefore(memosTwikoo, tws);
};
function startTwikoo() {
  startTW = setInterval(function(){
    var nowHref = window.location.href;
    var twikooDom = document.querySelector('#twikoo') || '';
    if( nowHref.replace(/^.*\/(m)\/.*$/,'$1') == "m"){
      if(!twikooDom){
        addTwikooJS()
        setTimeout(function() {
          var memoTw = document.querySelector('.gap-2') || '';
          memoTw.insertAdjacentHTML('afterend', '<div id="mtcomment"></div>');
          twikoo.init({
            envId: twikooENV,
            el: '#mtcomment',
            path: nowHref.replace(/^.*=?(http.*\/m\/[0-9]+).*$/,'$1'),
            onCommentLoaded: function () {
              startTwikoo();
            }
          })
        }, 1500)
      }else{
        clearInterval(startTW)
      }
    }
  }, 2000)
}
startTwikoo();

博客使用memos

在你博客的后台新建一个独立页面,插入以下代码就可以实现(代码来自浪子。Typecho以及WordPress亲测都可以)

 <div id="bber"></div>
<script type="module" src="https://immmmm.com/emaction.js?v=230811"></script>
<script src="https://fastly.jsdelivr.net/npm/marked/marked.min.js"></script>
<script src="https://fastly.jsdelivr.net/gh/Tokinx/ViewImage/view-image.min.js"></script>
<script src="https://fastly.jsdelivr.net/gh/Tokinx/Lately/lately.min.js"></script>
<script src="https://cdn.staticfile.org/twikoo/1.6.32/twikoo.all.min.js"></script>
<script type="text/javascript">
  var bbMemos = {
    memos : 'https://memos.duanxiansen.com/',//修改为自己部署 Memos 的网址,末尾有 / 斜杠
    limit : '',//默认每次显示 10 条
    creatorId:'' ,//早期默认为 101 用户,新安装是 1; https://demo.usememos.com/u/101
    domId: '',//默认为 bber
    twiEnv:'https://artalk.duanxiansen.com/',//启开 twikoo 评论,默认 https://artalk.duanxiansen.com/
  }
</script>
<script src="https://www.duanxiansen.com/memos/memos20.js"></script>

我的页面地址:https://www.duanxiansen.com/memos.html

没有css优化,大家可以进行优化显示,我这边只是简单显示

近期博客的一些变化

趁着这个快要放假的间隙,写下这篇文章。明天开始就要进入五一假期,很可能有一段时间不碰电脑了。

博客方面相较于之前有了很大的变化,也尽量的简化了不必要的页面,目前就只剩下了书影、相册、友链(友圈&留言)、关于这四个页面,还想要搭建一个音乐页面,没头绪,正在思考中。

关于书影。找了很久,才找到大发的这个插件,随着使用,愈发感到熟悉,才想起几年前使用过这个插件,为此,这段时间我也看了电影,读书也是拾了起来。它的安装至少激励了我读书的兴趣,只要空余时间,我都会在微信读书上面看书,有的书籍需要付费,正考虑买纸质版的。现在开车都把听音乐改成了听微信读书的朗读。话说,微信朗读现在好像听上了瘾,比喜马拉雅那种更令我陶醉。

关于友链。换主题后,这个页面一直停留在我的后台,前台一直没有放出,等我其他页面整理的差不多时,就该考虑到它了,原先后台有个链接,换主题后不见了,网上一搜是因为WordPress3.5版本以后去掉了,但不是真正的去掉,是把它隐藏了,使用一段代码就把它展现了出来,我根据这个就直接调用在了页面上,就先这样吧,之后还想调用头像。留言版是博客搭建起来就存在的页面,只是它其实也没存在的必要,文章的评论代替了它,但我想,其实还是有必要的,有时候博友想联系你,告诉你一件事儿,不适合在文章底下评论,发邮件也麻烦,那么这个留言板的作用就体现出来了。关于相册,是我在中文博客微信群里听1900说的他想弄个相册页面,展现文章里的照片。我也感兴趣了,这不当时就开整了,使用的画廊插件无缝的全屏的展现了出来,但还是感觉不是我心里面想的那个意思,所以又关掉了插件,只留下了单纯的WordPress自带的相册将其展现,还在思考中。友圈,这段时间朋友圈也是非常流行,我前段时间也写了这篇文章搭建,在上网冲浪时蚁阅的最新版本的更新吸引了我,我先是自己部署了蚁阅,结果他最新版本跟官方自用的差了一大截,好吧,想要体验他的最新功能还得使用官方的,一年30,也不贵,索性就用它了,在体验它的最新功能遇到了点儿问题,蚁阅开发者也是给了我解答。我用反代让它显示在了我自己的域名之下,rss.duanxiansen.com,又把它嵌入在了友链这个页面里,订阅的是我经常看的一些博客以及回访频率较高的博客。友链、友圈以及留言版被我三合一了,我是不是聪明,哈哈哈。

相比较上个月,我又把主题换了,目前这个主题很赞,我比较喜欢,可能会长期使用下去,至少在我研究透之前是不会跟换的,自定义真是完美。

往日本第一次寄快递的经历

前言

我妹妹决定去日本留学,她已经过去了,所有的后续事宜我在帮她准备,这不,准备好了材料给她寄过去。她给我发了一个中转的地址,需要先寄到上海的转运仓,然后再通过中转寄到日本,她以前也经常这样寄生活用品。然而这次是我寄,而且是这么重要的东西,所以想着有没有直达的。我先给中通打电话,中通表示先要寄到上海,让我自己找中转,而且说是要三四十天,我的天,黄花菜都凉了,况且,这么长时间,飘都飘到了。又问了邮政,邮政说是必须到营业点去寄,我妹说邮政是最慢的,所以直接放弃。

这时我想到了顺丰,当机立断打电话询问,那边工作人员态度很好,说是让我在家等着,他和他们片区经理一起过来。

说实话,这个态度就让我放弃了其他快递。

过程

过程比较繁琐,他们也是第一次寄国际快递。根据我妹发的地址我直接粘贴识别,顺丰的这个小程序识别翻译成了英语,我截图发给我妹,她说合适,我点击确定又出现问题,没办法,磨了一阵时间,最后他们把快递拿走,让我加了微信,说是他们那边翻译好了直接把二维码发过来让我付钱就行。

他们回去之后又要了我的身份证照片,说是需要上传实名认证,没过一会儿就把付款链接发了过来,总共218.9元,实付165,打了七五折。我妹说好贵,她一般寄东西都用的那个转运仓,大概九十多不超过壹佰。我毕竟第一次寄,不能办砸,所以直接付款。付完款后快递员说可能有税金,我一紧张,问多少钱,他说他们这边也看不到,只有取快递时才能看到。妹妹还埋怨我不听她的话没寄转运仓,转运仓不收税金,弄得我这几天很郁闷。

后记

没想到时间很快,五天就收到东西了,妹妹下午打电话就说东西收到了,而且没有税金,真好,终于放下心了。

 

记一次重装系统的故事

起源

我在下队时同事给我打电话说他有个电脑蓝屏了,让我帮忙装一下系统,我立刻就答应了,告诉他我到镇上了给他装。其实我已经好长时间不装系统了,原因很简单,单位的电脑老化严重,很费时间,而且我他喵的又不是修理工,整得我成了我们单位的技术人才了,免费的苦力不好干。这个同事关系比较好,而且是第一次找我帮忙,他之前也帮了我好多忙,因此立刻答应了他。

我之前拒绝同事的缘由是我的U盘找不到了,这次装系统时才发现U盘真的找不见了,这是对我的惩罚嘛,无语了。

过程

众所周知,用U盘装系统,需要把U盘作成启动盘。有很多种方法,前几天看了@和和日志的这篇文章:https://yhehe.com/archives/395/,我才知道还有这样一种方法,那我不得拿来练个手。

按照官网的流程,它是直接可以调取镜像到U盘,而不需要把系统拷贝到U盘。

于是我在https://iwin10.net/里面下载了Windows10系统,为啥选它,因为吻妻出品,更专注。真正的原因是其他需要迅雷下载,而我的电脑开启了代理,不知道咋回事,关闭和开启都下载不了,提示系统出错。

我用的百度网盘下载,出乎意料,今天的速度非常快,10G的东西不到半小时就下载完成。

失误的是Rufus需要的是iso,支持vim。而我下载的是GHO,于是又在网盘下载,幸好下载起来还是很快。

在调取的整个过程中我等了一个小时才加载了一半儿,看来是老天不希望我在今天折腾。所以立即终止,以后再试。原因是今天是周五,快放假了,而同事需要今天把电脑带回家。

微pe工具

我选择了微pe,因为它无捆绑,而且集成了必备的工具,不像老毛桃有捆绑。

过程还是很快的不到半小时就装上了。同事的电脑是惠普的本子,网上搜了一下,esc进入启动项,对于小白很友好,全是中文。

结尾

同事留了包烟,我没要,他硬要放,我也没拒绝,正好我也没了。

ps:封面图来自https://www.picprose.net/

三月份花开如烟

[caption id="" align="aligncenter" width="901"] 中川机场拍得飞机起飞[/caption]

前言

三月份一晃眼就过了,主要是为了记录一下生活与思考,本来想写周记,结果由于太平淡所以断了,不知道写啥也是实话。

生活

我奶奶住院了,猝不及防。老人家年龄大了不敢磕不敢碰,她是坐小板凳没看稳坐在地上,翻不起来了。我跟医院借了轮椅送到医院,目前在输液。医生说老人家年龄上去骨头是松的,一不小心碰着就不行了。说是输上十天半月能站起来就好了,站不起来就成睡床了。我爸由于在新疆,奶奶由我三爸在医院照看,我妈一天三顿饭往医院送,还有每天换衣服,因为屎尿全在床上解决,我妈真辛苦。

油价七块九毛二,加的我真心疼。索性这段时间上班不准备开车了,蹭车。结果就蹭了一次,再然后每周开车,原因是有时候同事请假或者临时有事。而班车没有直达的,很不方便。

妹妹回日本了,这次过去主要是办理留学,希望她一切顺利,争取后半年入学。

老婆失业又复工了。她们的社工站倒闭了,把乡镇上的社工全部辞了。在家待了两天又找了另外社工站的活儿,只不过比以前更忙了,早出晚归,很辛苦。主要是我现在在乡镇上班,她也不可能去外面上班,小县城工作除了考公务员其他都不太行,而这两年公务员竞争的压力很大,慢慢考吧。

工作

工作平平淡淡,淡入止水。本职工作就是这样子,后半年就开始忙了。不过这段时间也是没闲着,经济普查的工作由我负责,也快接近尾声了。

结尾

天气忽冷忽热,电暖是开了又关。弄得人忽上忽下,以至于感冒上火了,牙龈肿痛,很难受啊。

[caption id="" align="aligncenter" width="661"] 食堂里的牛肉面[/caption]

[caption id="" align="aligncenter" width="498"] 油价得的我是血压增高[/caption]

[caption id="" align="aligncenter" width="660"] 韭菜馅儿的饺子是越吃越香[/caption]

周报#2:依旧茫然

本来应该是上周写,但是上周的生活有点儿不太愉快,所以一直在摆烂,就放到今天了。

生活&思考

[caption id="" align="aligncenter" width="897"] 这是我妈最爱吃的其中一种饭了,干懒饭,也叫洋芋盖被子[/caption]

[caption id="" align="aligncenter" width="950"] 第二把就输破产了[/caption]

周末回家媳妇第二天就回娘家了,所以家里只有我和老妈两人。在家里平躺了两天,吃了睡,睡醒一直在手机上搓麻将。我现在想着是不是有点儿太颓废了,该给自己找事情干了,一点儿也没目标与规划,就算是到现在我写这段话,依然是茫然。

阅读

《明朝那些事儿》我读到了中间部分。有明一朝,不纳贡,不和亲,天子守国门,君王死社稷。是众多网络历史作家最爱描写的一段历史。而当年明月的文笔更引人入胜。我发现听书比看书更有感觉,源于我回家路上在车上把音乐关了,放起了微信读书的朗读,尽管朗读有些僵硬,仍是听得津津有味,后面我想应该使用喜马拉雅听,应该更有代入感。

博客圈

摆烂的原因就在这里,折腾了一周,啥也没折腾好,还把数据丢失了,废寝忘食的意义就没了。

我想给博客圈加个圈子功能,所以发现了youzify这个插件,和buddypress结合起来真的是一绝,在我心目中如果使用插件搭建圈子那就是天花板了,不过很可惜,它跟博客圈不兼容,我心里的想法是登录界面和注册界面用博客圈的,因为它有自己的用户中心。而如果是这样的话用户就登录不了,解决的办法是关闭博客圈的用户中心,但我不想关,所以弃之。

结果在卸载buddypress时,我所有的页面全部消失了,而我并没有备份,无语。

后面用上了Asgaros论坛,它是我心目中完美的 WordPress 论坛插件,看上去和Discuz很像,比bbpress更加易用。https://bokequan.cn/forum

软云

我也用上了它,源于张老师的一篇博文。对于身处博客加载慢的我来说,随即用上了,在一个月的体验中,感觉不错,4h4g我是第一次用,加载速度很快(其他我也不懂),建议不要安装宝塔面板。https://ruan.cloud/aff/LOAUWDRW(更优惠)

 

周记-流鼻血、上飞机、解押

这周事情很多,但仅仅只是生活上的事情。为此,我特意请了三天假来完成,不过事实上仅仅用了两天时间完成,而我在家里躺了三天。

上周四下午五六点,看手机时鼻子里感觉一股热流,我知道流鼻血了,也没在意。赶紧去止,结果卫生纸越止越多,有止不住的倾向,把鼻子塞住后鼻血从另一边流了出来,也会倒流进嗓子里。恰好同事进来,吓了一跳,连忙把我送去了卫生院,值班大夫给我用棉球和纱布塞住了鼻子,止住了血。塞过的都知道,非常难受。回去后一直到十点多,那玩意儿的难受程度超出了我的极限,我想着过去几个小时了,应该不流了,浑然忘记了值班大夫说明天再取的话。就慢慢的拿出来了。结果刚一拿出来鼻血又如水般流出来了,好吧,我又着急了,而且这么晚了,幸好那会儿临走之时大夫给了我一包纱布和几个棉球,只不过我没剪刀,纱布太长塞进去留一大部分在外面,只不过很快就红透了,看来大夫塞和我塞还是有区别的。浪费的剩下最后一条纱布时,我就不准备往出拿了,让它湿透挂在鼻子上。赶紧睡觉,说不定明天就好了。只不过比刚才还难受,真是何苦。

周五晚上又流了,然后这周又流了一次,想着要不去医院看看,正好我爸和我妹都要走了,要去送到机场,周二就找领导请假,请了三天,周二下午就回家了。

周三一大早就去了医院,挂的耳鼻喉科,大夫让我坐在椅子上用跟细管子查看了我鼻子里的情况,说是里面的毛细血管破了,现在已经结疤了,不要碰、不要抠,自然而然的就好了。主要是我被查出了鼻炎,从大夫截的图来看,是鼻甲肥大,两边都快长住了。好嘛,我说怎么鼻子经常不通。大夫开了瓶苯环什么的喷雾,让我早晚各一喷。

我妈腰疼,跟着我一起去了医院。拍了片子,说是骨头已经长定型了,问以前是不是摔过。我妈说是确实摔过,不过当时也没感觉到不舒服,就没管过。大夫说现在己经没办法了,让不要干重活儿,不要提重东西。

周四一大早凌晨三点多出发,历经三个小时到达了中川机场,我爸是八点十分的飞机,这是我爸第一次坐飞机,于是就由我妹送了进去(我没坐过飞机),我妹是下午两点多的飞机,同一天正好可以送进去,还好一切顺利。我爸去新疆打工,我姑姑家的表兄在那边城建公司当领导,给我爸找了个看门的活儿,轻松,适合我爸。

送完我爸还早,我们一家人就去秦王川文创园去转了圈,听说以前要门票,现在不收了。进去之后才发现,里面杂草丛生,荒废好久了。应该是个影视拍摄基地。

我妹两点多的飞机,先到上海转机,到东京都第二天凌晨一点多了,我一直坚持着没睡觉,结果快到一点还是睡着了,开了一天车,着实累了。我妹说下飞机后她打车到房子花了400多,半个多小时的路程令我很惊讶,说是这都算便宜了,她是在淘宝上找的车,不然下飞机打出租要700多,好的吧,是我肤浅了。

送完人以后就剩下我妈、我老婆和我三人了,我们也是分道扬镳,老婆去市区检查眼睛,我和我妈去白银车管所解押我的车。

解押过程很顺利,正好到白银车管所下午上班,所有的材料都给我邮寄了过来,过去签字上传资料就搞定了。完了之后就给银行的解押专员把照片发了过去,搞定,历时三年,绿本本到手了。

弄完之后我和我妈就打道回府了,老婆没回来,因为她周六要考试。

回到家三天了,每天就是吃了睡睡了吃,看来还是忙起来好呀。

本周周记到此结束,哈哈。

跟风利用FreshRSS实现朋友圈

前言

最开始我用的是阿锋的朋友圈插件,这是我第一次见把友链整合到RSS订阅把它展现出来,那会儿很好奇,就使用了阿锋的晨风自定义插件。后面看到了hexo-circle-of-friends,网上找了半天没看到WordPress上面实现的方法。后面才看到了若志的这篇文章,索性就搞了起来。

实现步骤

首先要搭建FreshRSS,这个教程很多,我使用的是服务器搭建,纯宝塔操作,简单不复杂。

1、添加站点,注意:需要确认已经安装了 PHP 扩展 fileinfo(我的默认安装了)。接下来在宝塔面板创建新站点,设置好数据库与 PHP 版本。数据库我选择的是mysql,PHP版本是0。然后,删去网站根目录下默认添加创建的所有文件,确保文件夹全部清空。打开站点根目录,把 FreshRSS 源代码上传到网站根目录,域名访问开始安装。

2、安装完成后进入设置-账户-API 管理,填写api密码提交。

3、进入设置-认证,勾选允许 API 访问 (用于手机应用),提交。

4、添加你的友链feed地址,我试了一下,直接输入友链域名大部分的rss地址可以自动获取,少部分不知道rss地址的可以安装浏览器插件查看或者问博主本人。

5、不知道是不是我安装的有问题,点击添加的友链管理,会弹出502 Bad Gateway nginx。不过双击还是就进去了,可以进行删除修改等操作,凑合着用吧。

6、在自己站点根目录下创建一个php文件,用于放FreshRSS api调用函数,例如:rss.php。访问https://你的博客域名/rss.php,显示数据已保存到JSON文件中。

<?php
/**
 * 获取最新订阅文章并生成JSON文件
 */
function getAllSubscribedArticlesAndSaveToJson($user, $password)
{
    $apiUrl = 'https://你部署FreshRSS的域名/p/api/greader.php';
    $loginUrl = $apiUrl . '/accounts/ClientLogin?Email=' . urlencode($user) . '&Passwd=' . urlencode($password);
    $loginResponse = curlRequest($loginUrl);
    if (strpos($loginResponse, 'Auth=') !== false) {
        $authToken = substr($loginResponse, strpos($loginResponse, 'Auth=') + 5);
        $articlesUrl = $apiUrl . '/reader/api/0/stream/contents/reading-list?&n=1000';
        $articlesResponse = curlRequest($articlesUrl, $authToken);
        $articles = json_decode($articlesResponse, true);
        if (isset($articles['items'])) {
            usort($articles['items'], function ($a, $b) {
                return $b['published'] - $a['published'];
            });
            $subscriptionsUrl = $apiUrl . '/reader/api/0/subscription/list?output=json';
            $subscriptionsResponse = curlRequest($subscriptionsUrl, $authToken);
            $subscriptions = json_decode($subscriptionsResponse, true);
            if (isset($subscriptions['subscriptions'])) {
                $subscriptionMap = array();
                foreach ($subscriptions['subscriptions'] as $subscription) {
                    $subscriptionMap[$subscription['id']] = $subscription;
                }
                $formattedArticles = array();
                foreach ($articles['items'] as $article) {
                    $desc_length = mb_strlen(strip_tags(html_entity_decode($article['summary']['content'], ENT_QUOTES, 'UTF-8')), 'UTF-8');
                    if ($desc_length > 20) {
                        $short_desc = mb_substr(strip_tags(html_entity_decode($article['summary']['content'], ENT_QUOTES, 'UTF-8')), 0, 99, 'UTF-8') . '...';
                    } else {
                        $short_desc = strip_tags(html_entity_decode($article['summary']['content'], ENT_QUOTES, 'UTF-8'));
                    }
                    
                    $formattedArticle = array(
                        'site_name' => $article['origin']['title'],
                        'title' => $article['title'],
                        'link' => $article['alternate'][0]['href'],
                        'time' => date('Y-m-d H:i', $article['published']),
                        'description' => $short_desc,
                    );

                    $subscriptionId = $article['origin']['streamId'];
                    if (isset($subscriptionMap[$subscriptionId])) {
                        $subscription = $subscriptionMap[$subscriptionId];
                        $iconUrl = $subscription['iconUrl'];
                        $filename = 'https://你部署FreshRSS的域名/p/'.substr($iconUrl, strrpos($iconUrl, '/') + 1);
                        $formattedArticle['icon'] = $filename;
                    }

                    $formattedArticles[] = $formattedArticle;
                }

                saveToJsonFile($formattedArticles);
                return $formattedArticles;
            } else {
                echo 'Error retrieving articles.';
            }
        } else {
            echo 'Error retrieving articles.';
        }
    } else {
        echo 'Login failed.';
    }
    return null;
}
function curlRequest($url, $authToken = null)
{
    $ch = curl_init($url);
    if ($authToken) {
        $headers = array(
            'Authorization: GoogleLogin auth=' . $authToken,
        );
        curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
    }
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    $response = curl_exec($ch);
    curl_close($ch);
    return $response;
}
/**
 * 将数据保存到JSON文件中
 */
function saveToJsonFile($data)
{
    $json = json_encode($data, JSON_PRETTY_PRINT | JSON_UNESCAPED_UNICODE);
    file_put_contents('output.json', $json);
    echo '数据已保存到JSON文件中';
}

// 调用函数并提供用户名和密码
getAllSubscribedArticlesAndSaveToJson('这里是FreshRSS的用户名', '这里是第3步设置的api密码');

注意:'https://你部署FreshRSS的域名/p/,没证书是http(最好带上证书,不然图标获取不到),还有后面的/p/. 新建页面,在正文里面输入简码:

7、我是用的是添加页面使用简码将其显示出来,在子主题的funtions.php里添加以下代码:

// 在 functions.php 中添加 shortcode 函数
function display_articles_shortcode() {
    // 获取JSON数据
    $jsonData = file_get_contents('./output.json');
    // 将JSON数据解析为PHP数组
    $articles = json_decode($jsonData, true);
    // 对文章按时间排序(最新的排在前面)
    usort($articles, function ($a, $b) {
        return strtotime($b['time']) - strtotime($a['time']);
    });
    // 设置每页显示的文章数量
    $itemsPerPage = 30;

    // 生成文章列表
    ob_start(); // 开始缓存输出
    foreach (array_slice($articles, 0, $itemsPerPage) as $article) {
    ?>
        <div class="article">
            <h3>
                <img src="<?php echo htmlspecialchars($article['icon']); ?>" alt="Icon" class="icon">
                <a href="<?php echo htmlspecialchars($article['link']); ?>" target="_blank"><?php echo htmlspecialchars($article['title']); ?></a>
            </h3>
            <p>作者:<?php echo htmlspecialchars($article['site_name']); ?></p>
            <p><?php echo htmlspecialchars($article['description']); ?></p>
            <time><?php echo htmlspecialchars($article['time']); ?></time>
        </div>
    <?php
    }
    return ob_get_clean(); // 返回缓存的输出并清除缓存
}

// 注册简码
add_shortcode('display_articles', 'display_articles_shortcode');

8、可以自定义css样式让其精致的显示,这是我的css代码:

/* Article container */
.article {
    border: 1px solid #ccc;
    border-radius: 5px;
    padding: 15px;
    margin-bottom: 20px;
}

/* Article title */
.article h3 {
    margin-top: 0;
}

/* Article icon */
.icon {
    width: 50px;
    height: 50px;
    margin-right: 10px;
    border-radius: 50%;
}

/* Article metadata */
.article p, .article time {
    margin: 5px 0;
}

/* Article time */
.article time {
    font-style: italic;
}

/* Hover effect on article */
.article:hover {
    box-shadow: 0 0 10px rgba(0, 0, 0, 0.1);
    transition: box-shadow 0.3s ease;
}
/* Article icon */
.icon {
    width: 1.5em; /* 使用 em 单位可以根据标题字体大小调整图标大小 */
    height: auto; /* 自动调整高度以保持宽高比 */
    margin-right: 10px;
    vertical-align: middle; /* 垂直居中对齐 */
    border-radius: 50%;
}

9、在宝塔添加一个计划任务,定时访问执行第6步创建的php文件,以更新订阅数据。官网里说的那个自动刷新订阅源的方法,我按照官网设置了每隔30分钟刷新,不知道咋回事儿不管用,每次都要自己刷新后才更新订阅源。

结语

自己部署rss订阅源是一件非常有成就感的事儿,过程也是艰辛,尤其是我这种不会代码的,更是辛苦,一步一步地查看错误,幸好有GPT,帮我可以查找问题,解决问题,不至于求人。

bokequan.cn怎么样呀

前言

距离上篇文章已经有4天时间了,事情往往就有些出乎意料,本来这篇文章是在当天就可以产出的,奈何电脑以及个人的问题延时到了今天上班。

起因

上篇文章写完的当天下午,博友阿锋就给我发了邮件告诉我bokequan.cn可以注册,令我十分惊喜,赶忙注册了,生怕迟一秒就被别人注册,上一个域名bokequan.net的抢注到现在还令我心有余悸。本来是可以直接更换的,不料宝塔面板进不去了,不知道是我代理有问题还是其他原因,反正是折腾了一下午没有结果遂放弃了,那天刚好放假需要回家就再没折腾。

经过

家里的电脑也差强人意,电脑自动开启代理模式令人很烦,找了好久没找到解决办法,每次使用都要关闭代理,过几分钟代理自动连接,又得关。这样子的后果就是让我对于碰电脑成了一种抗拒。而且我想到宝塔面板进不去应该不是代理的缘故,因为我手机上进去了一次,刷新一下后又进不去了。可能是宝塔端口之类的缘故。

更换域名啥的需要进入宝塔后台操作,所以一直等到了今天,今日我把vps重启更换密码之后莫名其妙的进去了,好吧,那就赶紧更改吧。

我使用的是Velvet Blues Update URLs这个插件,虽然是英文插件,但是还是比较直观的,第一步就是分别输入旧域名和新域名的网址,第二部就是勾选数据库中相应的数据表,默认替换所有文章、页面、自定义类型文章、修订版等,想要彻底替换新旧域名的话,建议全部勾选,然后点击【Update URLs NOW】按钮即可。适合小白使用,像我进去数据库一不小心把其他地方动了之后得不偿失。

在域名解析里我把bkq.net.cn域名解析映射到了bokequan.cn,好像没反应,不知道是不是我的设置有失误之处还是没反应过来。

结语

博客圈的全称bokequan.cn是不是比bkq.net.cn更令人可以记住呀!

搭建 Discourse 论坛的实践与心得

很久以来,我一直怀有搭建论坛的想法。从 2021 年开始,我尝试使用了多种论坛系统,比如 Discuz、Xiuno BBS、youBBS、HYPHP 和 Flarum 等等。经过不断摸索和比较,最终选择了 Discourse。

Discourse 与传统论坛系统有所不同,尽管其官网教程看起来很简单,但实际操作并不容易。在我看来,相比其他论坛程序,Discourse 的安装和配置确实有一定的技术门槛。

曾经,我记得有一个 Discourse 中文社区,但后来不知为何关闭了,现在只能依赖官网的资源来解决问题。此前,我尝试安装 Discourse 多次未果。这次借助 GPT,经过几天努力,总算完成了部署。接下来,我将分享我的一些经验,希望对其他博友有所帮助。

 安装 Discourse 的注意事项

1. 端口问题

我使用的是 VPS,并在上面安装了宝塔面板,其中已有多个网站运行。为了避免端口冲突,需要修改默认的 80 和 443 端口。可以直接在 `app.yml` 文件中进行更改。

2. SMTP 邮件配置

SMTP 设置是我遇到的最大难题之一。起初,我尝试使用 QQ 邮箱(端口 465),但邮件一直无法正常发送。奇怪的是,大约半小时后,QQ 邮箱开始大量发送邮件,但 Discourse 后台却显示邮件发送失败,且任务一直在进行。随后,我改用 587 端口,问题依旧。最终,我选择了 Gmail 邮箱,才成功解决邮件问题。

QQ 邮箱并非完全不可用,但配置上可能存在不确定性;相比之下,Gmail 更稳定可靠。

3. 安装目录的选择

在安装 Discourse 之前,一定要选择好安装目录。如果需要重建容器但未指定目录位置,可能会导致数据丢失。因此,提前规划目录非常重要。

4. 服务器配置要求

Discourse 的内存和 CPU 占用较高,部署之前选择合适的机器非常关键。我之前安装失败的一个主要原因就是 VPS 内存不足。

 安装过程中的关键提示

1. 耐心等待

Discourse 的部署过程相对较慢,尤其是运行重建容器的命令时,可能需要 20 到 30 分钟甚至更久。尽管看似卡住了,其实后台一直在运行。所以安装过程中务必要确认 `app.yml` 配置无误,每次修改后都需要重构容器。

2. 防止垃圾注册

为了避免恶意注册,我部署的论坛采取了邀请注册的方式。此前使用 Discuz 时,因开放注册频频受到垃圾用户的骚扰,实在是令人头疼。

 欢迎加入我的社区

经过多次努力,我成功部署了自己的论坛 Bokeuquan 社区。目前,该社区采取邀请注册机制,主要是为了维护良好的讨论环境。希望有兴趣的博友能加入,一起交流学习。如果你在部署过程中也有心得或疑问,欢迎分享你的经验!

这里放一下我的邀请链接:http://bkq.net.cn/invites/jtAvmM8WzQ

总结

虽然 Discourse 的部署过程略显繁琐,但只要掌握基本流程和注意的点,安装和配置其实相对简单。以上是我在搭建过程中总结的一些要点和注意事项,希望能帮助到想要尝试的博友们。

好的吧,折腾晕了

发个邀请链接:http://bkq.net.cn/invites/jtAvmM8WzQ

我也是第一次玩discourse,这个链接可以邀请100人,完了可以自己邀请博友进来,欢迎各位博友大驾光临,之前的discuz论坛的用户我想尽了办法,官方的转移脚本我也试了好几次没成功。哎,就连一个一个往进导入都是好难啊。也没办法,所以抱歉。

还有这个bokequan.cn,想来的自己申请吧,只要不是太过分就行,注重生活类的博客优先考虑。

就这么多吧,这段时间折腾discourse好几个晚上都没睡觉了。

可恶,这边的暖气出现问题了,冻出毛病了。

24-十月小结

生活

这个月过得很快,主要是因为有国庆节和中秋节。今年的国庆假期,我去了临夏附近转了转,其他地方没有去。期间,我学会了不少做饭的技能,终于能够和媳妇儿一起在家做饭,而不是总是出去吃,算是个进步吧,哈哈。

此外,我成功戒烟了,之前一直觉得戒烟很难,但没想到在国庆假期的一周里没抽烟,反而不太想抽了。现在抽一根烟竟然感觉有点恶心,应该算是戒烟成功吧。

今年医保政策有所调整,每人可以享受400元的医保待遇,如果家庭人口多,这笔金额也不小。最近我发现了一个新技能——可以用医保卡里的余额为家人缴纳医保。只要把家人添加到支付宝中的“家庭共济”账户,就可以将医保余额划拨给他们。这个操作需要进行人脸识别,但因为我爸在新疆,远程操作就做不到,只好自己花钱缴纳了。

国庆假期最后一天,我和几个兄弟聚了聚。现在大家都在天南地北,能聚到一起实属不易,还是得珍惜眼前的相聚时光。

另外,我们单位里新增了台球桌,原先有麻将桌,下班后大家常常一起玩,算是新旧交替吧,哈哈。

工作

往年这个时节工作通常会比较忙,但今年不知道为何比较清闲。乡村振兴的考核工作已经接近开始,虽然总感觉有点儿无动于衷,但最终还是没能逃脱责任。因为我负责的村子资料准备得不太充分,被批评了。确实是我的失职,虽然后来事情处理完了,也没有太大变化,但这次的失误让我警醒,还是要尽心尽力。

博客

这个月我更新了4篇博客文章,比上个月多了一些。主要是研究了Memos、足迹地图和留言板中的读者墙功能,尤其是Memos,研究得比较深入。@老张对事情的专注和执着,我真是佩服,自己则是尝试了一下就放弃,哈哈。

我给博客加上了“CDN”,其实不能完全算是CDN。灵感来源于@夜未央,访问速度超快,看到他的博客配置后,我也按他的方式安装了插件。但由于服务器的原因,缓存插件安装后遇到了一些问题。所以我选择直接使用腾讯云的EdgeOne,兼容CDN功能,效果真是太好了,速度快得让人满意。

另外,博客圈这个话题其实已经谈了很多次了。自从2021年开始,我就没有停止过维护博客圈。RSS订阅已经成为我博客的一部分,博客圈也是通过RSS订阅进行的。为了避免出现纠纷,我会提前通知博友是否会收录他们的博客。如果他们不想被收录,我会手动取消订阅。

我还建立了Bokequan社区论坛,并采用了邀请制,避免注册机滥用。前期我邀请了一些博友,如果有人希望加入,可以通过邮件联系我,或者直接留言给我,我会邀请他们加入。

如何在 WordPress 首页显示 Memos 最新动态

准备工作

确保已安装 WordPress 并启用了适合的主题:以我的主题为例,适用于大多数 WordPress 主题。

获取 Memos 的 RSS 订阅地址:比如我的链接为 https://memos.duanxiansen.com/u/1/rss.xml,根据你的 Memos 实际 RSS 链接替换。

编写函数获取 Memos 最新动态

需要编写一个函数,使用 WordPress 的 wp_remote_get() 函数从 RSS 链接获取数据,并解析出最新的一条动态。

首先,打开 WordPress 主题目录中的 functions.php 文件,添加以下代码:

// 获取 Memos 最新一条动态并显示
function display_latest_memo() {
    // 通过 wp_remote_get 获取 RSS 数据
    $response = wp_remote_get('https://memos.duanxiansen.com/u/1/rss.xml'); // 替换为你的 Memos RSS 网址
    if (is_wp_error($response)) {
        return '无法获取 Memos 数据';
    }

    // 获取响应的主体内容
    $body = wp_remote_retrieve_body($response);

    // 将 RSS 数据解析为 XML
    $data = simplexml_load_string($body);

    // 检查返回的数据是否为空
    if (empty($data) || !isset($data->channel->item[0])) {
        return '没有找到最新的 Memos 动态';
    }

    // 获取最新一条动态
    $latest_memo = $data->channel->item[0];

    // 将 RSS 中的时间转换为 WordPress 时区时间
    $rss_date = (string)$latest_memo->pubDate; // 获取 RSS 中的发布时间

    // 创建 DateTime 对象并设置为 RSS 的时间
    $date = new DateTime($rss_date);

    // 将时间转换为 WordPress 时区
    $date->setTimezone(new DateTimeZone(get_option('timezone_string')));

    // 格式化时间为 Y-m-d H:i:s 格式
    $formatted_date = $date->format('Y-m-d H:i:s');

    // 获取描述内容(通常是动态的主要内容)
    $content = (string)$latest_memo->description;

    // 限制字数(例如,显示最多300个字符)
    $excerpt = mb_substr($content, 0, 300);
    if (mb_strlen($content) > 300) {
        $excerpt .= '... <a href="' . esc_url($latest_memo->link) . '" target="_blank">阅读更多</a>'; // 链接到原文
    } else {
        $excerpt .= ' <a href="' . esc_url($latest_memo->link) . '" target="_blank">查看原文</a>'; // 如果字数较短,显示“查看原文”
    }

    // 输出最新动态的内容、时间和链接
    $output = '<div class="latest-memo memos-center">';
    $output .= '<h3>最新动态:</h3>';
    $output .= '<p>' . $excerpt . '</p>';
    $output .= '<p>时间:' . esc_html($formatted_date) . '</p>';
    $output .= '</div>';

    return $output;
}

// 创建一个短代码来显示 Memos 最新动态
add_shortcode('latest_memo', 'display_latest_memo');

在首页显示最新动态

接下来,要让 Memos 最新动态只显示在首页文章的最上方。为此,需要修改 header.php 或者 index.php 文件,在首页判断条件下调用定义的短代码。

  1. 打开主题目录下的 header.php 文件,找到适当位置(如头部模板部分)插入以下代码:
    <!-- 在首页显示最新的 Memos 动态 -->
    <?php if ( is_home() || is_front_page() ) : ?>
        <div class="memos-latest">
            <?php echo do_shortcode('[raw][latest断开_memo][/raw]'); ?>
        </div>
    <?php endif; ?>
    
  2. is_home()is_front_page():这两个函数确保只有在首页显示动态,而其他页面不会显示。is_home() 用于判断博客文章列表页,is_front_page() 用于判断自定义的前端首页。

样式调整(居中显示)

将以下 CSS 代码添加到你的主题 style.css 文件中:

.memos-latest {
    text-align: center; /* 水平居中内容 */
    margin: 20px auto; /* 上下外边距并居中容器 */
    padding: 10px;
    background-color: #f5f5f5; /* 背景颜色 */
    max-width: 600px; /* 设置容器最大宽度 */
    border-radius: 10px; /* 圆角效果 */
}

.memos-latest h3 {
    font-size: 1.5em;
}

.memos-latest p {
    font-size: 1.2em;
}

.memos-latest a {
    text-decoration: none;
    color: #0073aa; /* 链接颜色 */
}

结尾

就这样吧,不完美的就是不能直接评论,需要点进去到memos页面,继续完善吧。

独立博客的自省与思考

最近看到雅余兄的《独立博客自省问卷15题》,不少博友都写了自己的回答,我也借此机会反思一下我的博客历程。

1. 博客更新频率是多少? 更新频率不太稳定,懒癌发作的时候会好几个月不更新。但最近几周更新频繁,有时候甚至一天几篇。

2. 博客上次更新是什么时候?上周。自从八月份以来,还是保持了比较高的更新频率。

3. 博客文章是原创的吗? 大多数文章是原创,但有时也会借助共创的代码或教程来帮助完成一些技术性的内容。毕竟它不给我代码,我也没办法写下去。

4. 文章对他人有帮助吗? 多少会有些意义吧。尽管有些文章是自我记录,但相信对某些读者来说,可能也有启发。

5. 上次更换博客主题是什么时候? 这个问题对我来说很容易回答——前两天刚换!换主题对我来说就像日常活动一样,最高记录是一周内换了十个。

6. 上一次捣腾博客代码是什么时候? 昨天刚折腾到半夜,时常在代码上摸索,有时表达不清还会和GPT沟通不顺畅(笑)。

7. 会进行二次开发吗? 会的,虽然主题设置是为了方便,但我还是忍不住加些个人风格,比如更换字体。我每次换主题都必须用霞鹭文楷。

8. 多久会打开博客自我陶醉一次? 几乎每天都要看几次,尤其是查看流量,虽然大多数PV可能都是我自己刷的。

9. 近期对博客域名的感受? 域名目前没什么想法,虽然博客的主题和程序经常变动,但域名倒是一直稳定。

10. 每天看网站流量统计吗? 是的,每天看几次,尤其是睡前看看访客来源。使用的是百度统计,非常方便。

11. 通过博客赚到钱了吗? 没有,我拒绝广告。广告真的会影响阅读体验,所以我宁愿保持纯净的界面。

12. 浏览别人的博客主要为什么? 主要是为了学习他们的设计和排版,看到别人的博客总觉得比自己做得好,这也是我频繁更换主题的原因之一。

13. 看到别人分享的文章,第一反应是什么? 首先会注意网站的加载速度,尤其是图片延迟加载的效果,真的是一种丝滑的体验。

14. 觉得博客哪方面更重要? 内容和主题都很重要,二者不可或缺,毕竟鱼与熊掌我都想兼得。

15. 通过写博客有哪些新收获? 确实学到了不少新知识,认知也提升了。很多之前不理解的地方现在懂了,甚至在技术上有了更多的自信。

WordPress创建自定义读者墙功能

前言

在逛不亦乐乎博客时,我被其留言页面上读者墙的样式深深吸引。此外,在wys的友链页面,我也看到了独特的样式,这让我心痒难耐。于是,我开始在网上搜索相关的信息,偶然发现了张戈博客之前写过的一个插件。虽然这个插件由于年代久远已不再适用,但我决定根据其代码进行修改,并将其实现到自己的博客中。

步骤

1. 添加代码至 functions.php

首先,在你博客的主题目录下找到并打开 functions.php 文件。然后,将以下代码添加到文件末尾:

// 注册并加载读者墙的CSS样式
function enqueue_readers_wall_styles() {
    global $post;
    if (is_a($post, 'WP_Post') && has_shortcode($post->post_content, 'readers_wall')) {
        wp_enqueue_style('readers-wall-style', get_template_directory_uri() . '/css/readers-wall.css', array(), '1.0.0');
    }
}
add_action('wp_enqueue_scripts', 'enqueue_readers_wall_styles');

// 辅助函数:生成排行列表
function generate_readers_list($title, $query, $limit) {
    global $wpdb;
    $output = '';

    // 使用 transient 缓存查询结果
    $transient_key = 'readers_wall_' . md5($query);
    $wall = get_transient($transient_key);

    if (false === $wall) {
        $wall = $wpdb->get_results($query);
        set_transient($transient_key, $wall, 3600);
    }

    $output .= '<div class="readers-section">';
    $output .= '<h2 class="entry-title">' . esc_html($title) . ' TOP' . esc_html($limit) . '</h2>';

    if ($wall) {
        $output .= "<ul class='readers-list'>";
        foreach ($wall as $comment) {
            $avatar = get_avatar($comment->comment_author_email, 64, '', '', array('loading' => 'lazy'));
            $url = esc_url($comment->comment_author_url ? $comment->comment_author_url : "#");
            $author = esc_html($comment->comment_author);
            $count = intval($comment->cnt);
            // 用作者名称替代邮箱作为 tooltip 的 ID
            $tooltip_id = sanitize_title($author);

            $tooltip = "{$author}<br>评论数: {$count}";

            $output .= "<li>
                            <a rel='friend' target='_blank' href='{$url}' aria-describedby='tooltip-{$tooltip_id}'>
                                {$avatar}
                                <div class='tooltip' id='tooltip-{$tooltip_id}' role='tooltip'>{$tooltip}</div>
                            </a>
                        </li>";
        }
        $output .= "</ul>";
    } else {
        $output .= "<p>没有找到" . esc_html($title) . "数据。</p>";
    }

    $output .= '</div>';

    return $output;
}

// 短代码函数:读者墙
function readers_wall_shortcode() {
    global $wpdb;
    $output = '';

    // 评论总排行榜
    $query2 = $wpdb->prepare(
        "SELECT COUNT(comment_ID) AS cnt, comment_author, comment_author_url, comment_author_email 
        FROM $wpdb->comments 
        LEFT JOIN $wpdb->posts ON ($wpdb->posts.ID = $wpdb->comments.comment_post_ID) 
        WHERE post_password = '' 
        AND comment_approved = '1' 
        AND comment_author != %s 
        GROUP BY comment_author_email 
        ORDER BY cnt DESC 
        LIMIT %d",
        '段先森',
        12
    );
    $output .= generate_readers_list('评论总排行榜', $query2, 12);

    // 年度评论排行
    $query1 = $wpdb->prepare(
        "SELECT COUNT(comment_ID) AS cnt, comment_author, comment_author_url, comment_author_email 
        FROM (
            SELECT * FROM $wpdb->comments 
            LEFT JOIN $wpdb->posts ON ($wpdb->posts.ID = $wpdb->comments.comment_post_ID) 
            WHERE comment_date BETWEEN DATE_SUB(NOW(), INTERVAL 1 YEAR) AND NOW() 
            AND post_password = '' 
            AND comment_approved = '1'
            AND comment_author != %s
        ) AS tempcmt 
        GROUP BY comment_author_email 
        ORDER BY cnt DESC 
        LIMIT %d",
        '段先森',
        365
    );
    $output .= generate_readers_list('年度评论排行', $query1, 365);

    // 本月评论排行
    $query2 = $wpdb->prepare(
        "SELECT COUNT(comment_ID) AS cnt, comment_author, comment_author_url, comment_author_email 
        FROM (
            SELECT * FROM $wpdb->comments 
            LEFT JOIN $wpdb->posts ON ($wpdb->posts.ID = $wpdb->comments.comment_post_ID) 
            WHERE DATE_FORMAT(comment_date, '%%Y-%%m') = DATE_FORMAT(NOW(), '%%Y-%%m') 
            AND post_password = '' 
            AND comment_approved = '1'
            AND comment_author != %s
        ) AS tempcmt 
        GROUP BY comment_author_email 
        ORDER BY cnt DESC 
        LIMIT %d",
        '段先森',
        31
    );
    $output .= generate_readers_list('本月评论排行', $query2, 31);

    // 本周评论排行
    $query3 = $wpdb->prepare(
        "SELECT COUNT(comment_ID) AS cnt, comment_author, comment_author_url, comment_author_email 
        FROM (
            SELECT * FROM $wpdb->comments 
            LEFT JOIN $wpdb->posts ON ($wpdb->posts.ID = $wpdb->comments.comment_post_ID) 
            WHERE YEARWEEK(DATE_FORMAT(comment_date, '%%Y-%%m-%%d')) = YEARWEEK(NOW()) 
            AND post_password = '' 
            AND comment_approved = '1'
            AND comment_author != %s
        ) AS tempcmt 
        GROUP BY comment_author_email 
        ORDER BY cnt DESC 
        LIMIT %d",
        '段先森',
        7
    );
    $output .= generate_readers_list('本周评论排行', $query3, 7);

    return $output;
}
add_shortcode('readers_wall', 'readers_wall_shortcode');

2. 创建 CSS 文件

在你主题的目录下,找到 css 文件夹,并新建一个名为 readers-wall.css 的文件。将以下样式代码粘贴到该文件中:
/* readers-wall.css */

/* 容器样式 */
.readers-section {
    margin-bottom: 30px;
}
.readers-section h2.entry-title {
    font-size: 24px;
    margin-bottom: 15px;
    color: #333;
}

/* 头像列表样式 */
.readers-list { 
    display: flex; 
    flex-wrap: wrap; 
    list-style: none; 
    padding: 0;
    margin: 0;
}
.readers-list li {
    position: relative;
    margin: 10px;
    width: 50px; /* 调整头像大小 */
    height: 50px;
}
.readers-list li a {
    display: block;
    width: 100%;
    height: 100%;
    text-align: center;
    text-decoration: none;
    position: relative;
}
.readers-list li img {
    width: 100%;
    height: 100%;
    border-radius: 50%;
    box-shadow: 0 2px 5px rgba(0, 0, 0, 0.1);
    transition: transform 0.3s ease;
}
.readers-list li a:hover img,
.readers-list li a:focus img {
    transform: scale(1.1);
}

/* 悬停信息框样式 */
.readers-list li .tooltip {
    visibility: hidden;
    opacity: 0;
    width: 160px;
    background-color: rgba(0, 0, 0, 0.75);
    color: #fff;
    text-align: center;
    border-radius: 6px;
    padding: 8px;
    position: absolute;
    bottom: 60px; /* 头像上方 */
    left: 50%;
    transform: translateX(-50%);
    transition: opacity 0.3s ease;
    z-index: 10;
    font-size: 14px;
}
.readers-list li .tooltip::after {
    content: "";
    position: absolute;
    top: 100%; /* 箭头指向头像 */
    left: 50%;
    margin-left: -5px;
    border-width: 5px;
    border-style: solid;
    border-color: rgba(0, 0, 0, 0.75) transparent transparent transparent;
}
.readers-list li:hover .tooltip,
.readers-list li a:focus .tooltip {
    visibility: visible;
    opacity: 1;
}

/* 响应式设计 */
@media (max-width: 600px) {
    .readers-list li {
        width: 40px;
        height: 40px;
    }
    .readers-section h2.entry-title {
        font-size: 20px;
    }
    .readers-list li .tooltip {
        width: 140px;
        font-size: 12px;
    }
}

3. 新建页面并插入简码

在你的 WordPress 后台,创建一个新页面或编辑现有页面,并插入以下简码:
readers_wall

结尾

以上就是我在个人博客上实现自定义读者墙功能的步骤。如果你希望根据自己的需求进行样式调整,可以随意修改 readers-wall.css 中的 CSS 代码,

感谢 maie 的提醒,已修改funtions.php相关代码,隐藏邮箱地址。新增评论排行总榜

24-九月小结

生活

九月份的生活有些波澜不惊。值班的两天三夜显得格外无聊,连打麻将都提不起兴趣,吃饭也成了问题。结果,两天里我吃了四顿烤肉,吃到后来再也不想碰烤肉了。原本计划国庆假期去新疆找爸爸,想着今年他可能不回家,但看了看机票价格,只好暂时放弃了这个计划。

镇上有泸州老窖的代理宣传特曲酒,尝了尝味道还不错,扫二维码还可以领个小红包。

家里的电信宽带本来上个月取消了一些服务,这个月按理说只需要交62元就够了,结果交了100元还显示欠费。打电话去咨询,客服一开始说套餐是72元,但上个月明明告诉我是62元。搞得我一头雾水,投诉后又说是客服看错了,确实应该是62元。最后我稀里糊涂把钱交了,如果下个月还是这样,我就准备向工信局投诉,听说这种投诉很管用。

常点的一家烤肉拌饭店突然在美团上找不到了,点进去后发现变成了炸鸡店,过了几天又恢复了原样,完全搞不懂这是在搞什么操作。

值得一提的是,这个月我发掘了自己做饭的技能,干煸豆角做得又咸又香,家人都说好吃。不过我做的一道叫“洋芋齐花”的面食,被岳父说成像饺子,我妹妹则说像拌面,这真的是那么不像吗?

工作

这个月只值了一次班,想着国庆假期出去玩,就没有申请其他值班,估计过年时就要轮到我了。

单位新来了一位“三支一扶”的女同事,没对象的同事们都纷纷上去帮忙搬东西,结果一问,人家已经有男朋友了,真是让人哭笑不得。

博客

这个月折腾了好几个博客主题,换了将近十个,但没有一个真正让我满意。可能是我不太适合自定义吧,最后还是换回了“知更鸟”主题,省心省力,不用自己操心。

恢复了memos后,越来越觉得这个工具真的好用,随时随地都能发。我用的是苹果手机,moememos的发表功能非常方便。虽然部署memos的过程有些波折,但整体上并不复杂,主要是前期没什么头绪,最后我成功部署了18.1版本,并且配上了twikoo评论系统。相比artalk,我觉得twikoo更好用一些。

既然部署了memos,当然也不能少了木木的哔哔广场。我已经把它集成到了博客中,虽然还有很多问题需要解决,但适配的过程也不急,慢慢来。

此外,我还搭建了足迹地图,虽然还差点意思,但打算慢慢改进,不急于求成。

在使用“知更鸟”主题之前,我自己折腾了一个读者墙,样式跟张戈博客类似,不过由于插件没有及时更新,效果不太理想。后来我自己修改了一下,总体还算满意。现在“知更鸟”主题自带这个功能,所以我就放弃了自己做的版本。

友链页面也是我手工编辑的,放弃了“知更鸟”自带的友链模板,效果还不错。

评论等级系统也折腾了一阵,最终实现了我想要的效果。感谢群友们的帮助,成功解决了按邮箱获取评论数的问题,确实比用user_id更合适。

写了一大堆白话文,九月份也就结束了。

临夏短途游记:壮丽水库与松鸣岩初体验

今年国庆,本打算去天水玩,但计划总赶不上变化。由于家里只剩下奶奶独自一人,最终决定临近去转一转,然后回来照顾她。于是,临时改了行程,决定去临夏

3日 | 出发兰州新区 & 游湿地公园

一早出发去送妹妹。经过两个多小时的车程,我们抵达了中川机场。机场停车位紧张,绕了半个小时才找到位置。等妹妹安检完毕,已经是十一点半了。

兰州新区没什么太多可玩的地方。大舅哥推荐了新区的商场、湿地公园和秦王川文创园。商场老婆喜欢,但我没兴趣;秦王川之前去过,感觉一般。于是,我们决定去湿地公园,尽管季节并不合适。

湿地公园很大,风景虽好,但这个时节略显荒凉。高高的芦苇随风摆动,让人不禁联想到玉米地。公园里几乎没什么人,寥寥数人,让我们感觉像是包场了一样。转了一圈,觉得没什么新意,于是商量着接下来去哪儿。大舅哥提议,由于时间紧张,可以去临夏,天水太远,人又多,来不及细游。

3日 | 刘家峡水库初体验

下午三点,我们从新区出发,直奔临夏,先去刘家峡水库。

刘家峡水库位于黄河上游,是中国第一个五年计划期间由自己设计、施工、建造的大型水电工程,竣工于1974年。它被誉为“高原明珠”,不仅景色壮观,还具备发电、防洪、灌溉等多功能。

我们在六点左右抵达水库,这是我第一次来这里,身为甘肃人,竟然从未到过这壮丽的地方。黄昏下,水库静谧而震撼,水面波光粼粼,远处的高原峡谷景象让人心生敬畏。由于天色渐晚,旁边的炳灵寺没有去,只是在观景台上远眺,体验了一下水库的雄伟景观。

稍作休息后,我们继续出发,八点左右抵达临夏州,安顿下来,准备第二天的行程。

4日 | 松鸣岩 & 花儿盛会

第二天早上,我们前往松鸣岩。

位于和政县,是河州八景之一,海拔2730米。松鸣岩以每年农历四月二十六至二十八的“花儿”盛会闻名,这段时间,当地群众和外地游客会聚集于此,边欣赏美景,边漫唱“花儿”民歌,场面非常热闹。

然而,我们刚到松鸣岩时,闹了个笑话。原本我们以为已经进入景区,转了半天,周围冷冷清清,几乎没人。后来才知道,原来我们误入了后门,停在了吃饭的地方,白白花了十元停车费,哈哈,真是有点尴尬。

在正式景区入口,我们发现需要买票。我跟着老婆和她闺蜜一前一后走进景区,结果被工作人员拦住:“票呢?”我才意识到需要门票,乖乖地去买了一张45元的票。虽然老婆替我省了90元,但这不免让我有些小郁闷。

进入景区后,徒步上山的过程相当累,尤其是路边的景色也没什么特别之处,只是两旁的白杨树显得格外肃穆。走到一半时,看到路标才知道我们仅仅走了一半,而精华景点还在前方。咬牙坚持了下来,最终到达了山顶,看到那里的寺庙时,我已经累得没力气再继续上去了。早知如此,真该坐观光车上来。

稍作休息后,我们决定坐观光车下山,票价每人10元,倒也方便了不少。

临夏美食 & 返程

来到临夏,怎么能不尝尝他们的特色美食——手抓羊肉呢?由于时间紧迫,我们通过美团锁定了和政县城的“二洒手抓”。晚饭后,匆匆启程返家。晚上八点半终于到家,眼睛都快睁不开了,结束了这次临夏短途游。

虽然行程不长,但一路上风景独特,美食可口,给这次国庆增添了不少色彩。

利用Leaflet的想法构建足迹地图

前言

足迹地图我很早就知道咯,一直没有办法实现它,大发的地图插件Marker Pro很喜欢,但只是看看而已。直到发现了它——Leaflet,一个开源JavaScript库,适用于适合移动设备的交互式地图。
只不过我的博客在国内,想着多一事不如少一事,图源换成国内的应该好点儿(我换成高德了),原理它差不多。就像博友说的,使用国外图源,一不小心,把一小块地画给国外,就是勾结外部势力了。话不多说,上教程。

步骤

我的想法是新建页面模版,独立页面显示。

1、准备工作

新建footprint.js文件,footprint.js文件应包含你的足迹点数据,上传这个文件到你主题目录的js文件里,比如:

/wp-content/themes/your-theme/js/footprint.js

 

footprint.js文件的内容

const footprint = [ ["<b>银川</b><i>Yinchuan</i><a href='https://www.duanxiansen.com/84.html/'>银川镇北堡西部影视城三日游</a>", 38.46667, 106.26667], ["<b>榆中</b><i>Yuzhong</i><a href='https://www.duanxiansen.com/1303.html/'>记第一次滑雪</a>", 36.0620781, 103.8318566], ["<b>白银</b><i>Baiyin</i><a href='https://www.duanxiansen.com/1115.html/'>游黄河石林景区(公司第一次团建)</a>", 36.5340173, 104.1467575], // 添加更多点 ];

 

2、创建自定义页面模版文件

新建page-map.php文件,放在你的主题页面模版文件夹里。

<?php
/*
Template Name: 足迹地图
*/

get_header(); ?>

<style>
#map {
    width: 100%;
    max-width: 1200px; 
    height: 500px; 
    margin: 0 auto; 
}
</style>

<div id="map" class="other-map"></div>

<script src="https://webapi.amap.com/maps?v=1.4.15&key=您的高德地图API密钥"></script>

<script type="text/javascript" src="<?php echo get_stylesheet_directory_uri(); ?>/js/footprint.js"></script>

<script type="text/javascript">
document.addEventListener('DOMContentLoaded', function() {
    var map = new AMap.Map('map', {
        center: [116.397128, 39.916527],
        zoom: 4
    });

    if (typeof footprint !== 'undefined' && footprint.length > 0) {
        for (let i = 0; i < footprint.length; i++) {
            const [popupText, lat, lng] = footprint[i];

            var marker = new AMap.Marker({
                position: new AMap.LngLat(lng, lat),
                map: map
            });

            marker.on('click', function() {
                var infoWindow = new AMap.InfoWindow({
                    content: popupText,
                    offset: new AMap.Pixel(0, -30)
                });
                infoWindow.open(map, marker.getPosition());
            });
        }
    } else {
        console.error('footprint array is undefined or empty');
    }
});
</script>

<?php get_footer(); ?>

自行申请高德地图API密钥。注意上述代码中js的路径

/js/footprint.js"

结尾

过程很复杂,我简化了步骤,直接操作会很简单,不过相比较使用Leaflet,任有许多不完美之处,比如点击标记点显示文章图片,Leaflet会自动生成缩略图,而这个显示原图,所以我去掉了图片显示。鼠标滑过标记点,Leaflet会自动显示标记点文章,而这个需要点击标记点,而且点开之后需要手动关闭才能浏览下个标记点。Leaflet则不需要,随便点击空白处就关闭了。相比较,Leaflet更完美,体验感更足。

 

你好,follow

感谢diygod让我使用上了这款体验感非常强的神器。

关于

Follow是rsshub开源作者的又一款项目,作者的定义是下一代信息浏览器。

介绍

欢迎使用 Follow!此软件旨在让您在一个地方关注您喜爱的网站、博客、社交媒体帐户、播客和通知。它被设计为一个现代、快速且方便的一体化信息中心。

AI:Follow 利用先进的 AI 来协助您的运营。除了基本的 AI 翻译、摘要和推荐之外,它还提供每日两次的 AI 报告,以突出显示您订阅中的关键信息。此外,它还提供根据您的订阅构建的个性化 AI 知识库。

区块链:Follow采用区块链技术作为活跃用户和优秀创作者的激励机制,用户通过持有和使用Power Token可以获得更多服务和福利,创作者通过提供优质内容和服务可以获得更多奖励。

社交:Follow 也是一个社交平台,您可以关注其他用户、分享您的订阅并发现新内容。它还提供订阅列表同步功能,让您的朋友同步您的订阅。

支持的平台:关注适用于 Windows、macOS、Linux 和浏览器的桌面版;关注适用于 Android 和 iOS 的移动版(即将推出)。

体验

让我体验感最大的就是不用输入rss地址,直接输入网址自动获取,还可以看见订阅你博客的人数(前提是使用follow订阅)

图片模式很爽,壁纸、摄影等等,我把订阅的阿里云网盘以图片的方式呈现出来,真的很不错。

视频里面可以添加B站、YouTube等等,可以直接在线观看,爽爆了。

还有社交、音频等等,我都还没体验过,就前面的这些,我都体验不过来咯。

总结

Follow是目前在我看来,非常完美的信息聚合神器。它的使用方法需要邀请码来实现,每次邀请一人需要花费100Power。每天登录可获得20power,所以说,5天可以邀请一人。

之前对于rss订阅,在我的理解方式里是聚合文章,主要是为了查看博友文章。Follow的出现,让我打开了一座新大门。
话不多说,赶紧体验吧,一起交流、一起学习。

车险续期

起因

哎呀,真是没想到,这保险到期的事儿来得比秋天的第一杯奶茶还快!心里头虽然隐隐有预感,但9月就这么悄无声息地窜到眼前,还是让人措手不及。保险公司的小姐姐们,从上周开始就跟打了鸡血似的,每天信息轰炸,那时候我还悠哉游哉地想:“嘿,还有一周多呢,慢慢挑,不急!”于是,我就像看热闹的吃瓜群众,任凭她们表演,我自岿然不动,毕竟“货比三家不吃亏”嘛。结果,这一周晃眼就过去了,定睛一看,哎?怎么就剩这一家保险在卖力吆喝了?得嘞,事儿不宜迟,买它!

过程

今儿个跟人保财险的张姐一通电话打过去,咱们这误会才算是解开了。原来啊,我之前留的那个电话号码,早就因为欠费停机,成了摆设,而我又懒得管它,心想反正新号码在手,天下我有。这下可好,保险公司那边还以为我“人间蒸发”了呢,难怪这阵子安静得能听见针掉地的声音。往年这时候,电话铃响得跟过年放鞭炮似的,今年却是一片死寂,敢情是电话没打通啊!

和张姐一番讨价还价后,最终敲定了价钱——2244.07元大洋,不过好消息是,商业险给我打了个小折扣,优惠了60元,强险更给力,直接省了80元,算下来,只需支付2164元,这数字听起来都喜庆。期间我还嘴欠问了句车损险的事儿,一听报价1800多,吓得我赶紧摇头,这年头,能省则省嘛。想当年新车入手时,全险一套上,霸气侧漏;这几年下来,经验告诉我,有些钱真的可以不必花。

后果

说到底,车险这事儿,还真不能含糊。特别是强险,那可是雷打不动的必选项,跟每天必吃的早餐一样重要。想当年,我初出茅庐,不懂这些门道,愣是让它“裸奔”了大半年,现在想想都后怕,差点就因为自己的无知付出了“血”的代价。从那以后,我算是彻底学乖了,保险这事儿,得当回事儿办!

8月小结

生活

不知道大家抽烟吗,我自从上班刚开始抽,现在已经烟不离手了,可能到有孩子了才会有所收敛吧。一直以来,我抽的是这边的黑兰州,烟不错,不过现在感觉到粗烟有点儿抽不动了,细烟又感觉不过瘾,喜欢上了中支。刚开始发现的是长乐九美,抽了一段时间不太行,直到我发现了牡丹的中支,盒子挺漂亮,大红色。不过这个价格有点儿起伏不定,有时20,有时26。上周在超市看见了这种烟,一问20,赶紧购了一条,看能不能坚持两周。

身体感觉不太行,尤其是体检完之后。里面有两项比较重要在我看来,一项是甘油三酯偏高,另一项是碳十四吹气测试,得出的结论是阳性,300多。上网查了一下,说是又幽门螺旋杆菌。问了大夫,大夫说没事儿,小问题,给我开了四联药,由于自己生活不规律,导致喝药也没坚持上一个疗程。不过经常拉肚子,尤其是喝饮料,一丁点儿饮料也不能喝,喝完就拉。索性挂了专家号去看,大夫问了下病情让我先去做个肠镜,排了一天后做完肠镜一阵酸爽,片子上看去也没啥异常。这个专家只有周一上门诊,下周去想着要不要让大夫开点儿中药吃。

再给媳妇儿外公取药时才发现,原来在医院取药需要先挂号去找大夫开药,才能取。大夫不开药,医院的药房是自己不能取的。

没更新博客的这段日子,我学会了打麻将,黑三份、三五六页、大小页等等玩法。

工作

单位又进小年轻了,都是00后,刚毕业就考上公务员了,真厉害。感觉压力好大,不过分工也重新调整了,明显比之前好多了,轻松了点儿。

前段时间市上社工部选调,好几年没见这种选调了,不过很遗憾,没资格报名。限制的是在服务期内不符合选调条件,我现在上班四年了,还有一年时间。

这周有个培训,去市上,三天时间,周三到周五,一位同事想去,我就让他去了,对于培训之类的,我是干脆不想去,安安静静的待着上班不好嘛,折腾来折腾去的。

博客

博客吃灰好几个月了,现在得好好运营了。

5月份那会儿经历的太多了,cc到期,软云跑路,加之腾讯云搞活动,我买了两年的轻量,不到两百,准备先把博客迁进去,迁进去后又接到通知,之前的备案需要核查,我把电话写成了以前的电话,应该是打不通的缘故,那边把我的备案注销掉了,所以我又得重新备案,身份证又不在跟前,就这样拖了下来。

闲下来的时间总是无趣的,所有下定决心一定得备好案,周日提交腾讯云,周一提交管局,周四备案成功,还是挺快的。

博客名字换成了之前的“三无青年”,在我的理解中,我其实也是三无青年。

既然备案成功了,那么网安备案不知道是不是也得重新备案呢。

 

近期博客的一些变化

趁着这个快要放假的间隙,写下这篇文章。明天开始就要进入五一假期,很可能有一段时间不碰电脑了。

博客方面相较于之前有了很大的变化,也尽量的简化了不必要的页面,目前就只剩下了书影相册、友链(友圈&留言)、关于这四个页面,还想要搭建一个音乐页面,没头绪,正在思考中。

关于书影。找了很久,才找到大发的这个插件,随着使用,愈发感到熟悉,才想起几年前使用过这个插件,为此,这段时间我也看了电影,读书也是拾了起来。它的安装至少激励了我读书的兴趣,只要空余时间,我都会在微信读书上面看书,有的书籍需要付费,正考虑买纸质版的。现在开车都把听音乐改成了听微信读书的朗读。话说,微信朗读现在好像听上了瘾,比喜马拉雅那种更令我陶醉。

关于友链。换主题后,这个页面一直停留在我的后台,前台一直没有放出,等我其他页面整理的差不多时,就该考虑到它了,原先后台有个链接,换主题后不见了,网上一搜是因为WordPress3.5版本以后去掉了,但不是真正的去掉,是把它隐藏了,使用一段代码就把它展现了出来,我根据这个就直接调用在了页面上,就先这样吧,之后还想调用头像。留言版是博客搭建起来就存在的页面,只是它其实也没存在的必要,文章的评论代替了它,但我想,其实还是有必要的,有时候博友想联系你,告诉你一件事儿,不适合在文章底下评论,发邮件也麻烦,那么这个留言板的作用就体现出来了。关于相册,是我在中文博客微信群里听1900说的他想弄个相册页面,展现文章里的照片。我也感兴趣了,这不当时就开整了,使用的画廊插件无缝的全屏的展现了出来,但还是感觉不是我心里面想的那个意思,所以又关掉了插件,只留下了单纯的WordPress自带的相册将其展现,还在思考中。友圈,这段时间朋友圈也是非常流行,我前段时间也写了这篇文章搭建,在上网冲浪时蚁阅的最新版本的更新吸引了我,我先是自己部署了蚁阅,结果他最新版本跟官方自用的差了一大截,好吧,想要体验他的最新功能还得使用官方的,一年30,也不贵,索性就用它了,在体验它的最新功能遇到了点儿问题,蚁阅开发者也是给了我解答。我用反代让它显示在了我自己的域名之下,rss.duanxiansen.com,又把它嵌入在了友链这个页面里,订阅的是我经常看的一些博客以及回访频率较高的博客。友链、友圈以及留言版被我三合一了,我是不是聪明,哈哈哈。

相比较上个月,我又把主题换了,目前这个主题很赞,我比较喜欢,可能会长期使用下去,至少在我研究透之前是不会跟换的,自定义真是完美。

往日本第一次寄快递的经历

前言

我妹妹决定去日本留学,她已经过去了,所有的后续事宜我在帮她准备,这不,准备好了材料给她寄过去。她给我发了一个中转的地址,需要先寄到上海的转运仓,然后再通过中转寄到日本,她以前也经常这样寄生活用品。然而这次是我寄,而且是这么重要的东西,所以想着有没有直达的。我先给中通打电话,中通表示先要寄到上海,让我自己找中转,而且说是要三四十天,我的天,黄花菜都凉了,况且,这么长时间,飘都飘到了。又问了邮政,邮政说是必须到营业点去寄,我妹说邮政是最慢的,所以直接放弃。

这时我想到了顺丰,当机立断打电话询问,那边工作人员态度很好,说是让我在家等着,他和他们片区经理一起过来。

说实话,这个态度就让我放弃了其他快递。

过程

过程比较繁琐,他们也是第一次寄国际快递。根据我妹发的地址我直接粘贴识别,顺丰的这个小程序识别翻译成了英语,我截图发给我妹,她说合适,我点击确定又出现问题,没办法,磨了一阵时间,最后他们把快递拿走,让我加了微信,说是他们那边翻译好了直接把二维码发过来让我付钱就行。

他们回去之后又要了我的身份证照片,说是需要上传实名认证,没过一会儿就把付款链接发了过来,总共218.9元,实付165,打了七五折。我妹说好贵,她一般寄东西都用的那个转运仓,大概九十多不超过壹佰。我毕竟第一次寄,不能办砸,所以直接付款。付完款后快递员说可能有税金,我一紧张,问多少钱,他说他们这边也看不到,只有取快递时才能看到。妹妹还埋怨我不听她的话没寄转运仓,转运仓不收税金,弄得我这几天很郁闷。

后记

没想到时间很快,五天就收到东西了,妹妹下午打电话就说东西收到了,而且没有税金,真好,终于放下心了。

 

记一次重装系统的故事

起源

我在下队时同事给我打电话说他有个电脑蓝屏了,让我帮忙装一下系统,我立刻就答应了,告诉他我到镇上了给他装。其实我已经好长时间不装系统了,原因很简单,单位的电脑老化严重,很费时间,而且我他喵的又不是修理工,整得我成了我们单位的技术人才了,免费的苦力不好干。这个同事关系比较好,而且是第一次找我帮忙,他之前也帮了我好多忙,因此立刻答应了他。

我之前拒绝同事的缘由是我的U盘找不到了,这次装系统时才发现U盘真的找不见了,这是对我的惩罚嘛,无语了。

过程

众所周知,用U盘装系统,需要把U盘作成启动盘。有很多种方法,前几天看了@和和日志的这篇文章:https://yhehe.com/archives/395/,我才知道还有这样一种方法,那我不得拿来练个手。

按照官网的流程,它是直接可以调取镜像到U盘,而不需要把系统拷贝到U盘。

于是我在https://iwin10.net/里面下载了Windows10系统,为啥选它,因为吻妻出品,更专注。真正的原因是其他需要迅雷下载,而我的电脑开启了代理,不知道咋回事,关闭和开启都下载不了,提示系统出错。

我用的百度网盘下载,出乎意料,今天的速度非常快,10G的东西不到半小时就下载完成。

失误的是Rufus需要的是iso,支持vim。而我下载的是GHO,于是又在网盘下载,幸好下载起来还是很快。

在调取的整个过程中我等了一个小时才加载了一半儿,看来是老天不希望我在今天折腾。所以立即终止,以后再试。原因是今天是周五,快放假了,而同事需要今天把电脑带回家。

微pe工具

我选择了微pe,因为它无捆绑,而且集成了必备的工具,不像老毛桃有捆绑。

过程还是很快的不到半小时就装上了。同事的电脑是惠普的本子,网上搜了一下,esc进入启动项,对于小白很友好,全是中文。

结尾

同事留了包烟,我没要,他硬要放,我也没拒绝,正好我也没了。

ps:封面图来自https://www.picprose.net/

三月份花开如烟

前言 三月份一晃眼就过了,主要是为了记录一下生活与思考,本来想写周记,结果由于太平淡所以断了,不知道写啥也是实 […]

跟风利用FreshRSS实现朋友圈

前言 最开始我用的是阿锋的朋友圈插件,这是我第一次见把友链整合到RSS订阅把它展现出来,那会儿很好奇,就使用了阿锋的晨风自定义插件。后面看到了hexo-circle-of-friends,网上找了半天没看到WordPress上面实现的方法。后面才看到...
❌