普通视图

发现新文章,点击刷新页面。
昨天以前首页

多语言博客WordPress 插件 Polylang

作者 Dayu
2024年11月17日 22:48

我对多语言博客 WordPress 插件有以下几个需求:

  • 保持长期更新;
  • 免费或者不贵的买断制;
  • 中英文界面可同时 SEO 索引;
  • 操作简单易于多语言用户理解;
  • 中英文 RSS Feed 可以分开。

尝试多款插件之后,决定使用 Polylang,需求都能满足,且免费功能就够用。虽然内容需要自己翻译,但我也不是每篇都想翻译成英文,且借助 ChatGPT 并不费劲。

Pro 版(99欧元)可以和 DeepL 深度整合,并支持更多自定义功能。

基础设置跟着 Setup 流程即可。之后每翻译一篇,就会在英文界面展示一篇。

设置完成后的效果:https://anotherdayu.com/en/

向国内用户展示Twitter X和Instagram-WordPress插件

作者 Dayu
2024年11月16日 15:07

Twitter 在 WordPress 上的常规展示方式是 嵌入时间轴,缺点是仍基于 Twitter 数据库,所以国内用户无法查看。

近期我使用的是 juicer.io,这个网站可以将 Twitter、instagram、RSS 等时间轴聚合,展示在一个网页中。

而且支持 WordPress 插件,将嵌入时间轴。优点是经过 juicer.io 的转存后,国内用户也能访问该页面:https://anotherdayu.com/timeline/

小遗憾是数据没有储存在本地,所以无法进行 SEO 索引。胜在轻量级,不折腾,

CleanShot 2024-11-16 at 09.44.35@2x.png

流程如下:


另外,昨天和评论尸交流了一下,他开发的插件可以通过 RSS 为 WordPress 载入即刻的时间轴,并且有可能为 twitter 实现类似的效果。因为是通过 RSS 实现的,数据会保存在服务器中,并可以被 SEO 索引。

目前还在测试阶段,感兴趣的朋友可以关注他的 Twitter :@JeffreyCalm ,跟踪项目进展。

又到续费时

作者 大灰
2024年11月11日 13:00
话说我使用搬瓦工是从2017年开始,中间也买过其他家的机器,灰常记忆一直从未挪窝稳稳的运行,虽然慢却可以打开…… 今天看了下这台vps,硬盘空间又不足10GB了,感觉也没搞什么东西在上面😂,现在看来vps最低配置2H3G-50GB+空间才适合我。 今天把Nginx换到了Nginx openresty,其实也没感觉出来有多快,有些东西不兼容又换回nginx。有好的东西就想尝试下,又不是太折腾。 又到了一年VPS续费的时节,目前手里一台香港、一台美国瓦工、两台美国大硬盘机器。 买了两台大盘鸡,用来做备份。现在使用wp后台总是会报错,挺无解的尽管玩了这么多年wordpress还是找不出问题所在,只能 […]

WordPress RSS 排除特定分类 & 推送旧文更新

作者 Kevin
2024年11月7日 17:44

最近 Kevin's Space 被我折腾的挺凶,已经逐步从轻量级个人博客慢慢变化成综合性网站了。当然啦,网站内容方向和之前的并没有变化,只是数量上可能更多更细了,且难免会有一些转载的或者大多数博友不那么感兴趣的内容。因此我需要在 RSS 中进行一定程度的屏蔽,可能会是整个目录,亦有可能是某些特定文章。

同时呢,还有一些我认为有价值的文章我会反复更新,我可能也会去再次推送 RSS 给订阅者。以下是我对这些操作的简单记录,您各位老鸟做个参考。

1. 在 WordPress RSS 中排除特定分类文章

因为考虑到 Kevin's 有不少 RSS 订阅者,但同时呢我这又要更新不少订阅用户不喜欢看的内容,所以要在 WordPress 的 RSS 中隐藏特定分类的发布。如此便需要对 functions.php 文件进行一些修改以筛选 RSS 的输出内容。这是一个基本的步骤描述:

  1. 打开您的 WordPress 主题文件夹,找到并编辑 functions.php 文件。
  2. 选择一个对应的隐藏分类的 id。
  3. 在 functions.php 文件中,加入以下的 PHP 代码:
function myFilter($query) {
    if ($query->is_feed) {
        $query->set('cat','-5'); // 这里的 -5 应当替换为您想隐藏的分类 I..... [ 阅读全文 ]

原文链接: https://www.shephe.com/website/wordpress-rss-enhance/
版权声明: Kevin's Space 版权所有,转载请用明链标明本文地址
本站相关: 随机文章 | 站长微博 | 关于本站 | 联系站长 | 捐助作者

WordPress 添加友情链接页面 & 样式参考

作者 Kevin
2024年10月30日 22:44

Kevin's 的“友情链接”模块 / 页面已经丢失几年了,主要是因为现下的友链既无法联络感情又无法释放 SEO 的功能性,且有更高效的方案去实现博友互访。所以,既然 WordPress 官方都把这个模块砍了,我也就一直没弄。

在此,我非常郑重地感谢那些在此前一直保留我链接的博主们,谢谢!正好最近在折腾博客,完善功能,我就又把这个功能折腾起来并完善了页面,您各位瞧瞧:友情链接页面。其中我已尽量将自己记得的博客添加进来,但难免有疏漏忘记的,还请海涵!看到的话请在留言板提示一下。此外还有一些我常去的页面也罗列在此,排名均不分先后。另外如果你觉得本站还算有趣,也可以与我交换链接。

制作该友链页面的步骤大概分为三步,首先是把 WordPress 隐藏的友链恢复,然后是把友链信息从数据库中抓取并输出,最后是对输出的信息做一个个性化的展示。因为本人并不擅长(可以说是不会)搞代码,所以这里边大量借用了 AI 的技术,嘿嘿。

WordPress 添加友情链接页面 & 样式参考[ 阅读全文 ]

原文链接: https://www.shephe.com/website/wordpress-flink-page/
版权声明: Kevin's Space 版权所有,转载请用明链标明本文地址
本站相关: 随机文章 | 站长微博 | 关于本站 | 联系站长 | 捐助作者

WordPress 博客年度更新:全新首页上线,用户中心与问答社区优化升级

作者 Kevin
2024年10月29日 11:26

自从 2022 年 8 月开始,我便用上了 WordPress 的 Impeka 主题。虽然期间文章和页面不断更新,但这两年一直沿用一款简单的首页设计,看着看着也就“审美疲劳”了。最近,在大家提出的宝贵意见启发下,我一边灵感迸发,一边疯狂折腾,终于为博客换上了全新主页!不仅焕然一新,还新增了不少实用功能,并对细节进行了优化完善。希望新页面能让大家耳目一新,浏览更愉快!

1. 利用强大的 Impeka 主题制作了全新首页

Impeka 是一款现代化、灵活且功能强大的多用途 WordPress 主题,我在WordPress Impeka 2.0.6 创意多功能主题完整下载一文中有详细介绍。因为博主并不是科班出身,也不想费尽心思去搞代码,所以利用了主题的页面构建器搭建了如今的首页,以前的首页挪作它用,成了“最新发布”。

其实,我最初的首页设计内容是丰富得多的,但后来考虑到页面加载速度,以及小站目前的内容量确实不足以支撑复杂的首页布局,所以就稍微精简了一下。不过即便如此,可能仍有朋友会觉得有些部分“不够实用”或“稍显多余”。没关系,慢慢来吧!我会继续丰富内容,争取让每一部分都更有意义,也希望大家能见证它一步步完善的过程!

[ 阅读全文 ]

原文链接: https://www.shephe.com/website/wordpress-blog-enhance-2024/
版权声明: Kevin's Space 版权所有,转载请用明链标明本文地址
本站相关: 随机文章 | 站长微博 | 关于本站 | 联系站长 | 捐助作者

WordPress Impeka 2.0.6 创意多功能主题完整下载

作者 Kevin
2024年10月29日 10:28

Impeka 是一款现代化、灵活且功能强大的多用途 WordPress 主题,由 Greatives 开发,专为创意人士、企业和机构设计。它以卓越的性能和设计自由度著称,适合任何类型的网站,如作品展示、博客、企业官网、电商平台等。当前 Kevin's Space 使用的就是最新版本的 Impeka,这是我当年从 Themeforest 花 59 刀购买的,这主题从 1.0 一直更新到了如今的 2.0.6 版本,功能已经足够强大和完善,各种小细节和 Bug 也已经修复得差不多了。目前本人使用了它可能 1/3 的功能和特性,已经把 Kevin's Space 折腾得很花哨了,总体来讲我是对它非常满意的。

本文分享的 Impeka 主题共两个版本,其一是我从 Themeforest 后台下载但没有授权的官方正版,拥有完整的文档和各种资料,您各位也能安装使用不过功能上会有些许限制。另一个是 NULL 版(你可以粗略地将其理解为破解版),它允许你使用 Impeka 的全部功能、扩展插件,并且能从官方后台导入模板数据和资料文件。

WordPress Impeka 2.0.6 创意多功能主题完整下载WordPress Impeka 2.0.6 创意多功能主题完整下载[ 阅读全文 ]

原文链接: https://www.shephe.com/website/wordpress-impeka-creative-theme-download/
版权声明: Kevin's Space 版权所有,转载请用明链标明本文地址
本站相关: 随机文章 | 站长微博 | 关于本站 | 联系站长 | 捐助作者

尝试升级 WordPress 版本 和 PHP 版本,然后失败了

作者 石樱灯笼
2024年10月25日 23:36

尝试把 WordPress 从 5.2 版本 升级到 6.6 版本,把 PHP 从 7.4 版本升级到 8.3 版本。

任务艰巨得完成不了。

非常的崩溃。


前提

我现在的线上的博客,以及线下的开发环境,以及(如果还在不为我知的某个角落存在的话)商用用环境,都是 PHP 7.4 的。

最早些时候,应该算是2015年,正式入坑 PHP ,那时候基本是公司用啥,我用啥。PHP 5.2 5.4 5.6 都用过了,尤其是 5.2 大坑一大堆,摔过很多次。然后到 2016 年的时候终于用上了革新的版本 PHP 7.0。真爽。再后来开始自己独立开发环境,直接开了 DAMP 的坑,最初也是用的 7.0 版本,然后就很随意的升到 7.3 版本,主要是当时开发负担少。然后博客站也都升级到了 PHP 7.3。

再后来 2021 年接了一个外包项目。虽然当时 PHP 8.0 已经发布了,但是貌似周边支持都不怎么地。为了保证开发速度,直接用了 PHP 7.4 版本。当时还涉及到前端开发,Node环境也是大更新,很早之前一直用的各种热门前端库基本都死绝了。博客和本地开发环境也都升级到了 PHP 7.4,博客的 WordPress 程序倒是没变,还是 5.2 版本(这里埋了个大坑),只是偶尔会从官网下载代码包然后手动更新对应的文件,以修复些潜在的安全问题。

现在是2024年年末,就连PHP 8.0 都已经停止维护快满一年了,最新版本 PHP 8.3 也已经发布快满一年了。WordPress 都到了 6.6 版本了,一堆 WordPress 插件都已经停止 5.2 版本的支持了。

想趁着有时间有机会,把 PHP 和 WordPress 都升级了。

天真了。


第一天

首先是把线上的代码全备份一遍。这个毫无工作量,我之前写了个备份代码,直接就把自己的整站扒下来。然后把备份的站再部署到本地的开发环境上,再改几个数据库字段,就完事了。打开后台,先禁用所有插件,以便升级之需。

Apache2 和 MySQL 不用动,因为用的一直都是 Docker 的最新版本,这几年也没什么巨大的兼容性变化。

PHP 这块我不知道算不算麻烦。我把 PHP 从 7.4 到 8.3 的所有 不向后兼容变更废弃功能 全都看了一遍。没多少,就几页,几分钟就看完了。个人感觉这么多变更,只有一条能实际影响到我日常开发工作,就是自 8.0 起不再支持 带有默认值的参数后面跟着一个必要的参数

screenshot_on_b85m_by_flameshot_at_2024-10-24_22-51-45.png

其实个人工作中也很少这么用,因为易读性有点烂。论性能来讲的话这么写性能也很差,只不过以前工作过的公司里就有很多人这么写,主要是为了防止其他同事调用函数忘记传参(空参也是参)。

其余的改动基本影响不到我。我使用的基本都是 PHP 的官方建议用法,最多也就是会遇到某些外部库被遗弃然后有个平替的情况,比如数据库接口啥的,即使出错了立刻就能发现。

于是很自信的先把 PHP 环境升级到了 8.3 。因为是基于 Docker 的所以也完全不用担心环境污染的问题。

然后就崩了,WordPress 就打不开了。

这倒是意料之中,毕竟当年 WordPress 4.3 版本当年连 PHP 7.0 都不支持。我现在用的是 5.2 版本,最高能支持的 PHP 版本也才 7.3 ……

Screenshot_2024-10-24_at_23-02-46.png

什么?7.3?但我已经用 PHP 7.4 跑了 WordPress 满 3 年了啊???

什么兼容性测试……

下载了个 wordpress-6.6.2 的包,按官方文档手动安装。 崩得一塌糊涂

全部删除了重新来,这回用官方的自动升级功能,直接从 5.2 升级 6.6。真神奇,WordPress 官网被墙了这么久了竟然能秒下 WordPress 的安装包,我也不知道他是走的什么渠道。PHP 就这点恶心,前台所有操作你都看不到任何细节,就像是在用 Windows 一样。

成功安装。然后 崩得一塌糊涂 。这回不仅崩得稀烂,而且由于没手工删除后台的旧文件,新旧文件混在一起,更是手足无措。

就这么搞了超过6个小时,一直干到后半夜三点多,搞不定。

放弃,睡觉。

然后严重失眠,抽搐。

screen_IMG_2148.png


第二天 白天

首先考虑下到底是 PHP 的问题还是 WordPress 的问题。

按理来讲我已经把 PHP 的升级文档都看完了,并没有什么会天塌一般的变更,但是 WordPress 这边的确天塌了。

先在 PHP 8.3 环境下运行一下我的其他项目看看,结果我的个人主页就崩了。

screenshot_on_b85m_by_flameshot_at_2024-10-24_23-33-27.png

我用的是 2023 年 3.1.48 版本 的 Smarty,其基础版本是给 PHP 7.0 做的,可能旧了吧。

下载了最新版本的 smarty-5.4.1 ,然后

screenshot_on_b85m_by_flameshot_at_2024-10-24_15-36-49.png

什么玩意? implode is Deprecated ,我怎么不知道?

又去重新看了一遍 PHP.net 官网的 implode 文档和 PHP 升级文档。根本没有 Deprecated 。

然后在网上搜了一下,发现是 Smarty 的锅。而且 Smarty 还在 join 和 implode 之间反复横跳。更恶心的是,implode 和 join 在 PHP 7.4/8.0 中已经声明并废弃了 先数组后分隔符 的用法,但是在 Smarty 中却是强制要求 先数组后分隔符 ?甚至官方在 issue 里来来了句 Smarty is Smarty and PHP is PHP. 有病吧。而且你就算有病,你特么连个文档都没有,谁知道你有这种抽风的设计啊。

你要知道之所以我还用 Smarty 这种超级古董,就是因为这是一种 靠谱的、前后端分离、完全后端渲染、仅需要 HTTP 和 PHP 环境、不需要臃肿框架和特定语法,的网页渲染模式,是提供给搜索引擎最靠谱的传统模式。没有网页模板系统的话,想写这种纯后端渲染前端显示的页面,就只能 php 和 html 代码混写,非常的恶心。

现在 Smarty 抽风了,真就不知道以后还怎么不依赖框架写这种页面。我搜了下,Laravel 的 Blade ,和 Symfony 框架下的 Twig,貌似也可以独立使用,但是我对 Laravel 和 Symfony 基本一无所知,作为一个 PHP 开发者真是有点丢人。

话题扯远了,回到刚才。

我目前是不太想动我的个人主页的,这 WordPress 是大头,是主要内容。主页只是个入口。虽然主页改动起来并不困难,代码量少,Smarty 抽风的部分比较好找。但主页这一块我其实并不满意,主要是多语言这块用的传参而不是独立页面,很受搜索引擎嫌弃,基本上没收录,收录的也搜不到。但我的确没有精力和欲望去重做。

另一方面,WordPress这边,崩溃得最多的部分其实是插件。WordPress的代码质量本来就很堪忧了,第三方插件更是三脚猫,各种天花乱坠的不规范语法,可以说基本上都不能在 PHP 8.3 上运行。

另外我虽然看了 不向后兼容变更废弃功能 ,但是 PHP 新版新增的语法糖也有点天花乱坠。我用的是最新版的 php-cs-fixer_v3.64.0 ,没配置好的话就会把那些插件的奇葩写法转写成 8.3 的语法糖,有时结果更是瞎眼,基本没有易读性。

综上考虑,先放弃 PHP 8.3 的升级。先把能通的条通。PHP 的升级难度应该不是最高的,但是底下这些撇不掉的小垃圾目前是必须要保且支持不到 PHP 8.3,没精力做修改。

放弃 PHP 8.3 继续用 PHP 7.4 。


第二天 晚上

看兼容性列表,WordPress 6.6 也是支持 PHP 7.4 的。

但是实际上 API 改动实在太大了,而 PHP 前端应用最恶心的一点,就是 出错了,不报错

即使开启了 define('WP_DEBUG', true); define( 'WP_DEBUG_LOG', true ); define( 'SAVEQUERIES', true ); ,也经常是

  • 功能好像开了但是没开
  • 功能好像崩了但是啥日志都没有
  • 功能正常使用但是页面上打了一堆不知道哪里来的错误日志

面对如此大的一个工程而大部分代码逻辑都是不可靠的。升级到 6.6 实在是消受不起。

放弃 WordPress 6.6 ,只升级到比较近的版本。

要不然试试 5.5 吧,毕竟我在用的一款插件,作者自评最高支持到 5.5。

下了个 WordPress 5.5 的安装包,装完了。崩,但是崩得没有 6.6 多。

主题 graphene

不开插件,只看主题,首先就是文章的评论显示不出来。检查后发现是评论的API变了,而我的主题 graphene 是 1.9.4.3 版本的,不支持 5.5 。

screenshot_on_b85m_by_flameshot_at_2024-10-25_00-48-04.png

有时候看其他人的代码就是折磨,代码里写法五花八门,空格TAB混着,一会拼接字符串,一会替换字符串。单引号双引号混着用,左边括号有空格,右边括号换行了。

说实话我都不知道这算不算改好了,反正现在是能显示出来。我更担心的是其实还有哪个不知道的角落还有错,但是看不到,毕竟 PHP 前端 出错了 不报错

官方倒是有个新版的 graphene,但是我现在用的这个主题就是我大量改动过的,因为 graphene 原版的代码实在是, 太错了 。好多代码完全不符合前端的理念。然后是颜色和界面也是要一点一点从设置里调,那复杂和麻烦程度,说真的我更乐意重写 HTML 和 CSS 。

我真的想过很多次自己做一个 WordPress 主题,这个想法可是足够老了。但是当时 WordPress 3 版本的主题文档就恶心到我了,真的超级麻烦。而到如今就 WordPress 现在的代码质量,我估计开发主题会更困难更恶心。

也是怪不得其他更轻量的博客程序能后追直上。

插件 Disable WordPress Core Updates

接下来是 Disable WordPress Core Updates 这个插件。

这个插件是为了禁用 WordPress 的界面更新的。但是其实只有一行有意义的代码:

add_filter( 'pre_site_transient_update_core', create_function( '$a', "return null;" ) );

首先 create_function 这个函数在 PHP 7.2 废弃,在 8.0 中删除,所以我改写成了。

add_filter('pre_site_transient_update_core', function ($a) { return null; });

然后就见证奇迹了。能用是能用,但是 pre_site_transient_update_core 这个字段我在整个 WordPress 代码中都没找到。为什么做一个 pre_site_transient_update_core add_filter 就能抑制 WordPress 界面提示升级? 魔法啊?

然后开启这个插件的时候,更新页面是崩的。

screenshot_on_b85m_by_flameshot_at_2024-10-24_21-14-55.png

魔法。

插件 NIX Gravatar Cache

接下来是 NIX Gravatar Cache 插件。

这是个把 Gravatar 头像缓存到本地服务器的插件,只不过早就死透了。我当时随便改了点代码对付着用,大部分时间没出错也就那样了。

首先是这段代码。(红色部分是我添加的改动)

screenshot_on_b85m_by_flameshot_at_2024-10-25_01-04-29.png

不能直接执行 wp_enqueue_scriptwp_enqueue_style ,要先执行个 add_action('wp_enqueue_scripts', 引用能调用那俩玩意的函数); 。外国人看这种超长的单词时不会眼花吗?

然后是这么一段代码。

screenshot_on_b85m_by_flameshot_at_2024-10-25_01-00-47.png

WordPress 的 register_啥啥啥_hook(__FILE__, array($this, '函数名')); 写法全都作废了,要改成 register_啥啥啥_hook(__FILE__, array($this, '函数名'));

接下来底下那一节:

  • 假如 路径不可写 且 路径为目录,报错

否则

  • 假如 创建目录(权限777)失败 且 路径不为目录,报错

就这烂判断条件看得我脑子都快炸了也没弄明白为什么这破玩意能在我线上服务器上跑几年没报错,而我本地开发环境却根本跑不通。

screenshot_on_b85m_by_flameshot_at_2024-10-25_01-19-42.png

而且这玩意讨厌就讨厌在于,确在我的测试环境下报错了,但是 WordPress 只是多了个 .php-error 的样式并且高出来 2em 的一节,但是一点错误日志都没有!!! 出错了 不报错

最后还是靠自己写 debug 代码定位的问题。

这 TM 都是些不该是问题的问题,竟然多得到处都是。

2天,一点有效进展都没有。唯一有效收获就是这些屎山不碰就没事,一碰能崩得全身是屎。

反而自己写的没有引用那些垃圾玩意的插件和程序,没发现啥大毛病。


第三天

2天没啥进展,给我干懵了。

俗话说没事别升级,升级必出事。

原本的想法是先试着升级,如果不能平滑升级的话,大不了全摧毁了,然后把整个博客文章用导入的方法塞回去重建。如果插件出问题了,大不了找找看是否有新的替代品。结果搜了一下,靠谱的插件基本没有,一大堆商业推广的插件,和一大堆复合性插件,而且这些插件无论对 5.x 版本 还是 6.x 版本的兼容性都乱七八糟,问题解决不了,还有可能引入更多的问题。主题这边则是更不想换,一方面本身现在用的主题就是我大量修改过的,因为网上的各种主题,仅安全性就一塌糊涂,更别说 HTML 标准了。我这主题还是专门针对 1366×768 分辨率优化过的,能在 小屏幕 150% 比例正常显示。让我再去改个新的,工作量也是太大。

现在基本上没辙了。

PHP 这边其实还行,而且版本活跃度比较稳定。

screenshot_on_b85m_by_flameshot_at_2024-10-25_22-09-00.png

https://packagist.org/php-statistics 能看出各版本使用占比都跟维护相关。但 7.4 版本 比 8.0 版本还受欢迎 属实乐了。

但是周边应用真的是质量山体滑坡。WordPress自 3.0 版本就开始崩,后面很多发展都很魔幻,就连编辑器都是靠社区兜底,到现在已经想不清楚这玩意的产品路线是啥了。

其他生态我也不清楚,毕竟作为一个 PHP 开发,我连 Laravel 和 Symfony 都没用过,商用产品都是用 ThinkPHP 应付的,当然最爽不过不依赖框架没有条条框框自己从头写。

但是像 Smarty 这种原行业标志都走奇葩路线了。可以说整个IT行业,基本上,正常的元老人物都退出舞台了,剩下的这些,刨去臭鱼烂虾,就只有偏执而扭曲了,假若走向歪路,那就没得旧,而这一点在开源社区上也极为明显(因为闭源商业的死不死没人关心),Godot 基金会开搞政治正确炮轰特朗普和动画头像用户,Linux 基金会直接开踢俄罗斯的代码贡献者。IT 行业现在就像是一个患了早期癌症的癌细胞轻微扩散病人,看似有救但却是谁都不想救。


结论

给我干哑火了,懵逼了,现在不知道咋整了。

The post 尝试升级 WordPress 版本 和 PHP 版本,然后失败了 first appeared on 石樱灯笼博客.

博客作者呀,我想采访你这 9 个问题!

作者 Dayu
2024年10月17日 12:53

「为自己而写作」是绝大多数作者的自我形象定义。这个行业,有它自己的传统。
—— 李兆欣

这个采访目录参考了 Manu雅余。Manu 会定期邀请有趣的人聊聊自己的博客,至今已有 59 篇。我稍微调整了他的目录,问一些感兴趣的问题。雅余则设计了一个独立博客问卷,已有很多朋友参加。

平日读博客时,最喜欢看的是各位写的杂文随笔,那些生活中的细碎小事,也很好奇文章背后的各位,是如何看待自己与博客的联系。所以和朋友一起设计了这 9 个博客作者和读者共同感兴趣的问题。

写完的朋友,可以回评论区留个言,期待看到一个很多链接的评论区。

如果有更多想与我分享的,也可以参加「交个朋友」活动。


1. 简单介绍下自己或者你的博客?

2. 什么契机让你开始写博客?

3. 你是如何完成创作的?

4. 运营博客的过程中是否有失去过动力?如果有,是为什么恢复的?如果没有,请问您又是如何保持创作的激情?

5. 如何搭建博客,以及运营博客每年需要投入的资金?

6. 推荐 1 篇你博客中的文章,并推荐一个你喜欢读的博客,聊聊原因。

7. 推荐 1 个近期喜欢的事物?

(例如书籍、电影、音乐、工具、软件。)

8. 想做还没有做的事,或想尝试还没有尝试的主题?

9. 写到这里,闭上你的眼睛,深呼吸几分钟,或是出去溜达一圈,然后回来写任何你想写的东西。


写一篇博客,就是跟未来的自己约会。

希望大家享受这个问卷。

Peer review:JackYorks0n

.

.

拖了两周,终于坐下来答自己设计的问卷。

Puock主题修改备忘录

作者 陈大猫
2024年10月16日 16:05

作为一个写博十余年的老博主,实在是没有精力折腾各种新东西。但近期博客程序被入侵事件让我不得不换掉了使用很久的Flat主题。

本来想在后台随便找个官方推荐的主题凑合用,但那些主题基本上都是歪果人设计的,对中文排版支持不太友好,所以又重新找了款国人开发的主题,也就是本站正在用的——Puock主题

这款主题美观大方,功能强大,一次性解决了我很多痛点。可以说是立即部署、立即使用。

但使用了几天后,还是发现有需要调整的地方。现在记录一下,免得后面忘记了。

一、评论者URL跳转问题

主题模板设计的功能是:评论者如果留了URL的,则进行base64加密,然后通过一个中转页面进行二次确认,再进行跳转。

我对这个功能的态度是:完全不需要。

博友互访留下URL,并且清晰地展示在前台,我认为是非常重要的,加密再跳转极其影响用户体验。对于那些发广告的评论,我是一律删除就完事了,所以并没有这个需求。关键是,经过测试,部分URL加密后无法正常跳转,而是会跳到我博客首页,这完全让人摸不着头脑。

由于本人对代码几乎一窍不通,看了半天也没找到哪里能关掉这个功能。

开始把go.php里的代码丢给“文心一言”去分析,并根据AI指引修改里面的代码,试图取消加密,直接调转,但无果。

之后采取笨方法,直接用全文搜索,搜出了包含“go.php”这个关键词的页面opt.php,路径位于:

主题模板文件夹下的 /inc/fun/opt.php

相关代码为:

//跳转链接

function pk_go_link($url, $name = ”)

{if (pk_is_cur_site($url)) {

return $url;

}$url = PUOCK_ABS_URI . ‘/inc/go.php?to=’ . base64_encode($url);

if (!empty($name)) {

$url .= ‘&name=’ . base64_encode($name);

}return $url;

}

这段代码丢给AI,让他改为不加密,但AI弄了半天,不成功。

我看了下代码,还是采用最笨的方法,将$url =后面的内容改为了$url,也就是左右相等,替换后如下:

//跳转链接

function pk_go_link($url, $name = ”)

{if (pk_is_cur_site($url)) {

return $url;

}$url = $url;

if (!empty($name)) {

$url .= ‘&name=’ . base64_encode($name);

}return $url;

}

再次刷新运行,完美解决。

二、屏蔽键盘左右键翻页功能

这个问题是博友S发现的。

在单篇文章页面,使用键盘左右键可以实现上一篇、下一篇的快速切换。

看起来很美好,但这里有个“致命”BUG,当浏览者在评论框里输入文字时,不小心使用了键盘左右键来调整内容,此时页面会马上切换到上一篇或下一篇,直接导致整个评论表单输入的内容全部丢失。

当我打算去官方开发者博客留言反馈这个问题时,结果光是写那条留言就反复写了五六次——官方竟然复刻了这个问题,也就是说跟我博客运行环境是没有关系的。

在等待官方修复这个BUG之前,我尝试自救。

跟文心一言沟通多次,并没有给出有效的解决办法。

无奈之下,找到了chatgpt,让他给我写一个屏蔽键盘左右键的插件,修改一次后,解决问题。

现在,我的博客将暂时屏蔽键盘左右键,按下时会弹出对话框,虽然也有一定影响,但总比吞掉辛辛苦苦敲下的文字强吧。

10.18更新:

在GitHub提交issue后,网友hausen1012回复说遇到同样问题,并给出了相关的代码。

经测试,删除主题模板下/assets/dist/js路径中puock.min.js文件以下代码即可取消左右键翻页功能:


{
key: "keyUpHandle",
value: function() {
var a = $(".single-next-or-pre");
a && (window.onkeyup = function(t) {
var e = null;
switch (t.key) {
case "ArrowLeft":
e = a.find("a[rel='prev']").attr("href");
break;
case "ArrowRight":
e = a.find("a[rel='next']").attr("href")
}
e && (window.location = e)
}
)
}
}

10.22更新:

感谢博友老何提醒,由于直接删除上述代码,会导致评论回复功能不可用(我猜是keyUpHandle这个功能还关联了其他事件)

忍不住又折腾了一下,经过chatgpt的分析,把上述代码修改为下面的代码:


{
key: "keyUpHandle",
value: function() {
var a = $(".single-next-or-pre");
var commentBox = $("#comment"); // 获取评论框

// 定义事件处理函数
var handleKeyUp = function(t) {
var e = null;
switch (t.key) {
case “ArrowLeft”:
e = a.find(“a[rel=’prev’]”).attr(“href”);
break;
case “ArrowRight”:
e = a.find(“a[rel=’next’]”).attr(“href”);
}
e && (window.location = e);
};

// 绑定事件
if (a.length) {
window.addEventListener(“keyup”, handleKeyUp);
}

// 解绑事件的函数
this.unbindKeyUp = function() {
window.removeEventListener(“keyup”, handleKeyUp);
};

// 监测评论框的焦点事件
commentBox.on(“focus”, () => {
this.unbindKeyUp(); // 当焦点在评论框上时,解绑键盘事件
});

// 可选:在评论框失去焦点时重新绑定事件
commentBox.on(“blur”, () => {
if (a.length) {
window.addEventListener(“keyup”, handleKeyUp); // 重新绑定事件
}
});
}
}

希望不会再衍生出新的BUG。

Obsidian 和 WordPress 我都用什么插件

作者 Jeff
2024年9月3日 19:24

Obsidian 插件

1. Hover Editor
快速悬浮模式编辑。

2. Outliner
整理大纲。

3. Clearing Unused Images
用于清理图片,该插件默认不开启,需要清理时才启用。但现在基本不插入图片到笔记,纯文本记录。

以上就是我当前使用的所有第三方插件。之前也试过安装 Calendar、Kanban、Thino 等等插件,但感觉都没太大必要,软件自带功能和核心插件完全可以应付常规笔记需求。插件多了反而影响软件秒开。

我使用 Obsidian 插件的使用原则是,脱离 Obsidian 后,所有内容可以在其他编辑软件中继续正常使用。这意味着类似 Dataview 需要语法来判断、筛选内容的插件不符合我的要求。没有 Dataview 的便捷性,反而让我对于索引卡制作和双链的使用更加严格,对内容有更多的思考。提升效率的插件可以考虑安装一两个,或者多记几个快捷键。


WordPress 插件

1. Akismet
默认插件,能应付部分垃圾评论。

2. Autoptimize
优化 HTML、CSS、JS。

3. Object Cache
优化缓存。

4. WP Permalinks Migration
去年简化固定链接后作重定向安装的,计划明年删除。

以上就是我当前使用的所有插件,其他就是依赖部署服务器的时候一些优化,买的最低配轻量应用服务器。目前感觉网站整体速度还可以。我的开源主题,我会在functions.php 中禁用一些不需要的功能。我自己用的主题,我会禁用更多,比如禁止WordPress自动生成缩略图、禁止响应式图片。我不考虑使用第三方服务,比如图床,以避免以后服务终止或迁移带来的困扰。

-

个人觉得,做笔记也好,写博客也好,软件/程序功能上的需求没有那么多,就是图片和文本信息。基于极简原则,其他都是画蛇添足或锦上添花。花样多,需要投入的非必要时间就多,让你分心的东西越多。够用就好。

WP搬家策略

作者 xrspook
2024年8月30日 19:44

当年今日

现在WordPress服务器供应商的服务期限大概到今年10月就满了,所以在那之前,团长是应该带着我搬家的,今年早些时候我们已经讨论过这个问题,因为他已经忘记了账号密码,所以常规的搬家步骤不没办法实现,因为根本进不了后台,导出不了数据库,同时也不能把我挂在上面的网站拷贝出来。今年4月的时候,我已经折腾了一番,用的是一个WP的插件(All-in-One WP Migration),那个东西可以在WP后台的界面把网站所有数据全部导出。导出的那些数据被压缩成一个文件。那个文件通过他们网站上面的某些工具,可以在线浏览里面的内容,也可以下载工具安装之后把它解压出来。但即便都解压了出来,那个东西的结构跟WP网站本身还是有一定区别,所以我猜他们没想过用户会把数据导出来以后,通过手工搬家的方式,把数据库挪到其他地方。比如在新的服务器那里,首先进行一个数据库的导入,然后把网站解压的内容复制到新的服务器。为什么这么说呢?因为上面说过,文件加压后的结构跟WP网站本身是有点区别的,但我并没有研究过差异在哪里。有区别就意味着直接搬过去肯定会遭殃。所有人都知道服务器上传文件的大小是有限制的,有可能服务商对你进行了限制,也有可能是软件进行了限制。所以这个插件还卖了一个功能,他们可以把超大的压缩文件上传到你的网站上。你完全不需要考虑文件超限,做不了任何事情。这么高端的操作是付费服务。如果人人都可以轻易地自己挪动,这个付费也就毫无意义,他们也就无法靠这个东西生存下去了。如果网站的数据超限了,但又不想给钱,他们还是给出了一些调整的方案,但这些步骤对小白来说有点复杂,但是对我这种不怕折腾,只要能免费的人来说,完全是可行的。主要步骤分为两个,第一个是在我WP的文件里插入某些语句,但即便这样插入了,也不能保证上传一定不超限。因为还有服务商那边的门槛,所以必要的时候还是要跟服务商沟通一下。在测试搬家这个问题上,我用过两个方式,一个是纯粹的导出导入,第二个是在导入形成网站之后,再导出那个网站的数据库文件,接着把那个网站的网页文件复制到一个新的地方,然后把数据库文件另存为一个新的数据库文件并修改网址,最后把新的网页文件指向新的数据库。之所以做这么无聊的测试,是因为万一服务器那边无论我怎么修改,就是不让我直接导入大文件,我还可以通过这种方式搬家。我20年数据的整个文件不到600MB,而数据库文件只有70多MB。不让600多MB的文件上传,我觉得这是有点可以理解的,但是70多MB的数据库文件,我感觉还是可以成功导入的。如果能实现,我很折腾的第二个方案就意味着我可以把网站从线上搬到线下,然后进行一个普通搬家的流程。之前说过,之所以得这么折腾,是我没办法直接访问现在那个网站的后台,折腾一番以后,实际上我就是把网站线上的后台搬到了线下。

这两年来写了很多的VBA+ADO+SQL,所以我在 phpmyadmin里看到数据库和SQL的时候,我感到了默默的亲切。当我在那里测试SQL语句的时候,发现那个速度实在太感人了。70多MB的SQL文件用Notepad++打开,大概13万行。我要更新里面的某些东西,那是眨眼就能完成的事,跟用Excel处理的速度相比,专业的数据库真的太伟大了。

星期三就已经找过团长,但到星期四下班的时候,他还没回复我。通常情况下不会这么长时间都没反应的,大概他出差了吧…

14年的独立blog

作者 xrspook
2024年8月29日 08:45

当年今日

blog在WordPress上,不知不觉已经14个年头。如果没记错的话,是在2010年开始的,因为那个时候BlogBus崩掉了。这14年,我都是跟着同一个团长。那个团长是在豆瓣上认识的,估计现在那个团里面就只剩下我和他了,其他人可能都已经渐渐退掉。实际上,对blog有需求的人,可能只剩下我一个,只有我一个积极用户。团长本身就只是做那个事而已,我不知道他有没有在服务器上折腾些什么。以前可能他是有折腾的,但折腾这种事,对普通人来说不可能一直都折腾。因为写blog本身不算太折腾,每天都耗费基本上相似的时间,习惯下来就好。

我有想过有一天团长不干了,我该怎么办。我自己独立一个门户吗?那个时候,如果遇到一些技术上的故障,我该怎么办呢?现在实际上,我们也的确遇到了技术上的故障。因为团长换电脑了,所以那个服务器的账号密码不见了。理论上联系服务商,只要你提供足够的资料,对方是可以帮你找回密码或者帮你重置密码的,但关键是邮件发过去,对方完全不理你,还真一点办法都没有。当然,如果服务商是大型的,估计不会发生这种事,但如果那只是一个小众的服务商,那么发生这种事,绝对是有可能的,中途跑路也是有可能的。这么多年下来一直都相安无事,我觉得都已经是个奇迹了。中途我们有没有搬过家呢?我没什么印象,因为不是我操作的,我顶多是一段时间开不了网页,但实际上,无论我开得了还是开不了网页,我的blog都会继续,都会在记事本上写下来。重新能开网页的时候,我就把之前囤下的那些东西发布上去,仅此而已。

如果有一天团长不干了,我还会继续每天写,但那个时候估计就不能称之为blog,要称之为日记了,blog和日记对我来说,最大的区别在于一个自己存着,另外一个放在网上,谁都可以看到。

服务商这种东西,即便是最大型的,也说不准靠谱不靠谱,因为大型的服务商也非常有可能有倒闭的那一天,某一天,他们不再开展这个业务了,转而开展别的,把这个业务关闭了,你一点办法都没有。一直以来我们的数据都是放在外国的服务器的。以现在的局势看来,继续放在外国好像有点风险。倒不是因为我的数据有什么问题,涉及了什么方面的东西,而是如果一旦某些事情发生,互联网中断,即便我的东西还存在着,但我再也接触不到了。

我从2004年开始写自己的blog,到昨天为止,我备份了一下全站的内容,媒体资料有400多MB,数据库有70多MB,其它的都是一些很小的脚本。文字内容的东西基本上都在数据库的SQL文件里,附件类图片音频之类的东西其实这么多年下来也不是很大,最主要的原因是可能一开始我会用得比较多,尤其是在我刻橡皮章的时候,后来越来越少了,尤其是近几年,我基本上没有了什么兴趣爱好之后。

还记得一开始在BlogBus上开我自己的blog的时候,我的誓言是一辈子都写,每天不间断,但现在看来,写不写下去靠的是我个人,但能不能让其成为blog,外部干扰因素很大。如果是短时间内,外部因素干扰可以忽略,但如果把时间延长到十年甚至几十年,外部干扰因素影响非常大。

有天赋?

作者 xrspook
2024年8月15日 08:42

当年今日

有时候我也搞不懂自己是不是真的有编程的天赋,还是说不知道为什么我对这方面会特别感兴趣。之所以这样,我觉得一定程度上跟我过往的经历有关。我不讨厌数学,但因为自己的计算能力有问题,经常会因为这样那样的原因出错,所以越往上学,我的成绩就越会出现提不上去。知道那个思路,但是却算不出那个答案。这种情况在某些只需要答案不需要过程的考试里面就很吃亏。即便需要计算过程,但如果我在第一个部分就算错了,后面也就没有什么意义了,因为根本算不下去。

编程好像一定程度上弥补了我的计算失误。因为计算结果是由机器完成的,而我只需要提供思路。在简单的问题上,那种百发百中的感觉真好。不过当问题遇到的越来越多,思路不是一下子就能畅通,我需要碰过很多壁以后才能出结果我会觉得刺激。在考虑很多因素的时候,总是有这样那样的不到位。有些步骤可以做在前面,也可以坐在后面,但是哪个会更优呢?最终都能得到同样的结果,那个时候我就得用机器的方式去考虑,怎么样才能最大程度节省资源,提高运算速度。

如果说写脚本的话,高中的时候我已经在干,那个时候是写网站,现在写CSS,然后是 HTML,再到后来当我接触WordPress以后是PHP。一开始用的CSS 那个时候就完全只是控制网站的部分格式而已。CSS可以控制很多东西,但是核心的部件是没办法修改的,有些控制封装在核心部件里,于是自定义CSS无法到达,那个时候我感觉到有一点点的无力。相对而言,WordPress控制方面可以说只有你想不到没有做不到。哪怕有些部分可能CSS真的无能,但实际上当你得知那个控制手段以后,你还可以配合其它的脚本实现某些格式的自定义。

最终让我觉得自己的编程技术总算是用到了点子上是近几年Python,Power Qurey和Power Pivot以及VBA的使用。这几个东西是从Excel的数据处理开始的。我基础的东西都齐全了,但是我怎么才能快捷获取某个成品的结果呢?我知道那个事情该怎么干。但是天天都干,又或者是在很短的时间内要我干那个事情,首先是觉得很烦,其次是非常容易出错,于是这让我想到为什么我不能用编程的手段把它们高度的结合起来。要用什么编程语言?其实一直我都在摸索。用过了一段时间,大家都尝试过了以后,我觉得大部分情况下,无论哪个语言,都能获得类似的结果,但复杂程度不一样,在不同设备上的运行速度不一样,需要的设备基础也不一样。我要用什么编程实现那个结果,我就得考虑这些东西。我是不是经常要用,是不是我一个人用,是不是我还得给别人用。最终我觉得稳定性首先必须保证,最终那个结果也是,必须得以某个我要求的方式输出的,第三点就是看看我的第一感觉是哪个编程软件。

可能某一天,某些软件用不了了,我只能用其它方法去替代,虽然这很麻烦,但是我也相信,我有能力可以做出替代,但我希望不需要有那么一天。

如何搭建一个博客?

作者 青山
2023年12月25日 19:40

记得一个脑筋急转弯,把一头大象装进冰箱需要几步?三步,打开冰箱,然后把大象装进去,关闭冰箱。

我对于个人博客的搭建步骤也可以用三步来概括,注册域名、购买服务器、搭建博客,但当我们实际操作起来步骤远比想象的要多。

今天写一篇从0到1的博客搭建教程,希望影响更多想写博客的人

如何搭建一个博客? - 第1张图片

防杠说明:我只以我的经验为基础,推荐和介绍我所用的服务器、程序,更好的方案有很多,不喜勿喷。

并不是因为没有内容可写才出一篇搭建博客的教程,相反,我希望用这篇教程,让想写博客的人,可以写。

基本概念

在介绍博客如何搭建之前,有必要解释相关的概念。这里我采用初之音博客的解释,加以修改。

访问我的博客,需要在浏览器里输入域名 yinji.org,浏览器通过域名解析服务查询到上述网址指向的 IP 地址为 64.88.88.xx,IP 地址与服务器绑定,访问IP就是访问服务器。服务器查询到 yinji.org 指向的位置是 WordPress 博客程序所在的目录,因此返回该目录下所有可以展示的文件。最后,由博客程序将内容返回给访客,显示在浏览器上。

因此,我们需要有域名、服务器、域名解析服务、IP、博客程序、运行环境。

域名

一个完整的域名有前缀和后缀,比如 yinji.orgyinji 是前缀,org 是后缀,中间用符号.链接。所以我们在注册域名时,预先想好前缀,然后在可供选择的后缀中选择合适或者喜欢的。

常见的后缀有 .com.net.org.me.top,不推荐国别域名后缀 .cn。如果用作个人博客,我推荐使用 .com.net.me.im

在国内服务商注册域名,好处是价格较便宜,支付方便,但需要实名认证,我建议使用国外的域名商,看个人选择。

国内域名服务商推荐腾讯云、阿里云,如果想注册非主流域名后缀,可以使用趣域网。国外域名服务商推荐 NameNameCheapNameSiloPorkbunGandi,使用之前可以参考比价网站,对比不同域名后缀在不同域名服务商的注册、续费、转入价格,比如哪煮米TLD-ListNameBeta,尽可能选择知名度较高的大厂。

服务器

云服务器和 VPS 有区别,也有联系,为了容易理解,下面都以 VPS 为介绍对象。

使用国内的 VPS,域名必须备案,所以你如果打算购买腾讯云华为云或者阿里云等国内云服务商的 VPS,最好是在同一个服务商注册域名,方便管理和备案。

如果使用大陆以外的 VPS,比如香港、台湾、日本、美国的服务器,不用备案。

相对来说,国内 VPS 带宽小、价格便宜,其他地区的 VPS 带宽大、价格稍贵,但也有性价比不错的商家,下面会有介绍。

腾讯云、阿里云、华为云都有相应的学生认证服务,通过学生认证可以以优惠价购买配置还不错的 VPS,如果你符合该条件,可以试试。

国外的云服务商选择很多,知名的有 AWSVultrLinode搬瓦工,他们所提供的服务器质量好、售后好,但也很贵,不建议新手玩家购买。如果你每年只有300元以内的预算,推荐 CloudCone 或者 RackNerd

我目前使用的 VPS 来自 CloudCone,在2023年4月复活节期间购买,配置为 CPU&内存:2核(vCPU)&2GB,存储:60GB硬盘,带宽:1Gbps,每个月3TB流量,25.5美元/年,续费同价。至于使用体验,可以查看我以前的文章《使用 CloudCone 的第 7 个月》。

或者考虑使用同一机房,但配置稍微低一点的 RackNerd

对了,国外云服务商还有一个更重要的优点,续费同价,不像国内的套路云,往往只有新人和第一年才有优惠价。

购买 VPS 和注册域名一样,选择知名度高的厂商,虽然我推荐的这两家没有 AWS、Vultr 这些大厂名气大,但在圈内也比较知名,性价比高。

搭建博客

购买服务器

以上面提到的 CloudCone 为例,介绍从购买服务器到搭建博客的过程。

目前 CloudCone 已无库存,可以考虑购买 RackNerd 的 VPS,也有洛杉矶 DC2 机房

首先在 CloudCone 注册账号,该服务商需要提前充值金额,所以先看好想买的 VPS 价格,充值好对应的金额。点击头像,然后进入 Billing 页面。

如何搭建一个博客? - 第2张图片

下方有一个 Add funds 按钮,支持支付宝支付。

如何搭建一个博客? - 第3张图片

充值好金额之后,以圣诞节特惠 VPS 26美元款为例,然后进入购买页面,选择合适的系统,设置好 Hostname,即可下单。

如何搭建一个博客? - 第4张图片 如何搭建一个博客? - 第5张图片

推荐使用 Debian 或者 Ubuntu 系统,版本选择最新即可,Hostname 没有太多限值要求,英文+数字组合即可。然后等待 VPS 开通成功,之后会收到来自 CloudCone 邮件通知,包含 VPS 的 IP 地址和 SSH 登录账号和密码。

如何搭建一个博客? - 第6张图片

解析域名

一般域名注册商会提供免费的域名解析服务,或者使用其他服务商提供的域名解析,例如 Cloudflare。

这里以 Cloudflare 为例进行介绍。首先需要注册 Cloudflare 账号并登录,点击添加站点。

如何搭建一个博客? - 第7张图片

输入需要添加的域名之后,选择最下方的 Free 方案,点击继续,会提示你修改域名的 DNS 服务器。然后只需要回到域名注册商后台,修改 DNS 服务器即可。

如何搭建一个博客? - 第8张图片

等待 DNS 服务器更新完成,回到 Cloudflare 后台,为域名添加解析。类型选择 A,名称填写 @ 或者 www,IPv4 地址就填写上面购买的 VPS 的 IP 地址,代理状态不建议使用 Cloudflare 代理,一般用不上,建议取消,最后点击保存即可。

关于名称,多说两句。以我的域名 yinji.org 为例,如果填写 @,则解析后的域名就是 yinji.org;如果填写 www,则解析后的域名就是 www.yinji.org 。建议两种都解析,将 yinji.org 作为主域名,设置 www.yinji.org 跳转至 yinji.org。

如何搭建一个博客? - 第9张图片

安装环境

使用 WordPress 程序安装博客,我的常用做法是安装宝塔面板,一键配置 lnmp 环境,Linux+Nginx+MySQL+PHP。

首先需要使用任意一个 SSH 客户端登录服务器,输入账号 root 和登录密码,端口一般为22。如果你的电脑是 Windows 系统,可以直接在 Terminal 上输入命令ssh root@142.1xx.2xx.xx -p 22登录服务器。

下图是堡塔远程工具的截图,输入对应的内容登录即可。

如何搭建一个博客? - 第10张图片

不同的系统安装宝塔面板所用的命令也不一样,以宝塔官网提供的为准。

CentOS 系统:

yum install -y wget && wget -O install.sh https://download.bt.cn/install/install_6.0.sh && sh install.sh ed8484bec

Ubuntu 系统:

wget -O install.sh https://download.bt.cn/install/install-ubuntu_6.0.sh && sudo bash install.sh ed8484bec

Debian 系统:

wget -O install.sh https://download.bt.cn/install/install-ubuntu_6.0.sh && bash install.sh ed8484bec

如何搭建一个博客? - 第11张图片

只需要输入一行命令,整个过程基本上自动完成,安装成功之后,会显示面板登录地址及其账号密码,保存即可退出。

按照提供的地址和账号密码,登录宝塔面板,会弹出环境安装的选择,一般选择 LNMP,极速安装。

如何搭建一个博客? - 第12张图片

上述步骤完成,搭建 WordPress 博客所需的环境也就安装成功了。

创建网站

博客程序种类丰富,常见的 WordPress、Typecho 等,这里以 WordPress 为例。首先需要前往 WordPress 官网下载程序包,一个包含中文语言的压缩包。

如何搭建一个博客? - 第13张图片

紧接着回到宝塔面板,在左侧找到“网站”一栏,添加站点→创建站点→输入域名(例如 yinji.org)→数据库(选择 MySQL,设置账号和密码)→PHP 版本(选择 PHP-81),最后点击提交。

注意:这一步既创建了网站目录,也创建了数据库,所以后面无须再次创建数据库,记住这一步骤下的数据库名、数据库账号和密码即可。

新建一个站点之后,点击左侧“文件”,便会看到系统自动创建了一个以域名为文件名的文件夹,我们称之为网站根目录。

如何搭建一个博客? - 第14张图片 如何搭建一个博客? - 第15张图片

站点创建之后,进入该站点所在目录,删除目录内所有文件,一般只剩下一个 .user.ini 文件,删不掉也没关系。

上传下载好的 WordPress 压缩包,并解压,得到一个名为 WordPress 的文件夹,将文件夹里面的文件全部移动到网站根目录。

如何搭建一个博客? - 第16张图片

上述步骤完成,一般就可以在浏览器里输入域名进行程序安装,但为了减少后面的麻烦,可以先将 SSL 和伪静态提前设置好。

点击刚刚创建好的网站,选择左侧的 SSL,然后选择 Let\'s Encrypt,选择需要配置 SSL 证书的域名,点击申请即可。

如何搭建一个博客? - 第17张图片 如何搭建一个博客? - 第18张图片

最后开启强制 HTTPS,点击保存。

关于伪静态设置也很简单,打开左侧的“伪静态”,下拉找到 WordPress,点击保存就可以了。

如何搭建一个博客? - 第19张图片

设置好 SSL 和伪静态之后,便可以在浏览器里输入绑定好的域名,进入 WordPress 程序安装环节。

安装 WordPress 程序

在浏览器里输入域名,进入程序安装界面。

如何搭建一个博客? - 第20张图片

这一步需要用到数据库名、数据库账号、数据库密码,这些都可以在宝塔面板里找到,数据库主机和表前缀保持默认即可,不用修改。

如何搭建一个博客? - 第21张图片

填写正确之后提交,下一个页面是设置站点标题、后台用户名和密码等内容。

如何搭建一个博客? - 第22张图片

全部内容填写完毕之后,通过 域名/wp-admin 路径进入博客后台,即可看到如下图所示的界面,即博客搭建大功告成。

如何搭建一个博客? - 第23张图片

后面你所需要做的事情就是熟悉 WordPress,在后台摸索文章、媒体、页面、评论,以及如何上传/更换主题、安装插件等功能。

写在最后

WordPress 是我最早接触的程序,宝塔也是我最早接触的可视化服务器面板,所以我一直以来的博客搭建方案便是 VPS+宝塔+WordPress,这些都有平替,比如 1panel,再比如直接使用命令行,手动安装环境,但我不会,学起来也比较困难。

怎么方便我就怎么来,即使有人说 WordPress 臃肿,即使有人说静态博客更好,即使有人说宝塔面板好多广告,但看个人选择吧,做好自己,不要求别人。

所以上述所有内容都是基于我个人经验写作而成,存在很强的主观性,仅仅是作为一种选择,提供给想搭建独立博客进行写作的人。同时,由于我能力和知识有限,如果上述内容有任何问题,欢迎指正。

就像东评西就的博主小饿所说:在这个日益浮躁的环境下,难得有非技术人士肯花时间再次开始写独立博客了。博客从来就不是技术人士的专属,非技术人士也可以通过自己的学习和努力搭建属于自己的独立博客,希望我的内容能帮到这些人。

从写一个 WordPress 插件说起

作者 夏泉
2024年6月22日 12:53

之前博客的《目录》页面用的是 List category posts 这个插件生成。可这个插件虽然功能比较多,但是不支持(还是我不知道?)我要生成的页面。

再往前用的插件是 Dagon Design Sitemap Generator,它可以生成一个以「分类目录」为主题的文章页面列表(例子可以看文章存档 – 木遥的窗子)。但是这个插件很长时间没更新了,甚至它的官网都打不开了,没办法重新下载这个插件。

考虑到这个插件功能并不复杂,索性自己写好了。我的文章本身不多,因此也不用做分页或者其他的配置,用最简单的方式即可。这个插件应该符合以下功能:

  • 生成一个双层级的 bullet list
    • 以「分类目录」为第一层,排序方式按单词字母正序
    • 以该分类目录下属的文章为第二层,排序方式按文章创建时间倒序
  • 「分类目录」的展示需要加前缀 “Category”,且这个前缀需要加粗
  • 「分类目录」的内容为分类标题,该标题为该分类的 URL
  • 文章列表都是可点击的 URL
  • 文章标题后面增加文章创建的时间

以上功能其实不复杂,最后只用把它们拼成 HTML 语法的代码即可。

问题在于,我从来没写过 WordPress 插件,甚至我也不会 PHP。换在两年前,如果需要完成这项任务我应该需要:

  1. 用至少 2 天时间学习 PHP 的基本语法,其中可能包括:
    • 找到合适的上手文档/教材
    • 搜索无数次 StackOverflow 搭一套可运行环境
    • 学点基础语法,并且在写的过程中反复查文档
  2. 用至少 2 天时间学习 WordPress 的开发过程,其中可能包括:
    • 为了性能和效率,先在本地机器跑起一个 WordPress 页面
    • 从 WordPress 的文档看怎么写出一个 Hello World 插件
    • 搜索无数次 StackOverflow 看别人怎么解决各种意想不到的问题

但是自从有了生成式 AI 后,完成这么一项任务变得无比简单。以这次写插件为例,用的是 Anthropic 新发布的模型 Claude 3.5 Sonnet,前后只用了 30 分钟就完成了。我并没有学 PHP 的基础语法,也没有查过 WordPress 的文档。只需要通过合适的 Prompt 引导 AI 生成合适的代码,同时让 AI 告诉我怎么把插件安装到 WordPress 即可。

当然,初次生成的代码不是完美的,但是把需要改进的内容告诉 AI 即可慢慢引导到正确的结果。

这与程序员目前写代码是一样的过程:刚开始写好的大概率是不完善的,有错误或此前没考虑到的地方,一步步改好重新运行,通过不断的试错达到最终的效果。

这就是 Sam Altman 提到的完全使用自然语言编程。几十年前的程序员写的是汇编语言,而今天绝大多数的程序员都不再用,而是通过 Python 等高级语言(这里的高级并非褒义词,而是高度封装的意思,类似于预制菜和炒菜的区别)完成任务。而如今的 AI 是一个新的编译器,它可以让大多数人直接通过自然语言编程。

或者类比一下,coder 有点类似于国内较早学习英文的人,有能力将中英文互相翻译。而现在的 AI 可以充当一个翻译器,让人可以直接用自然语言和计算机交流。

但这并不意味着编程就成为一件无门槛的事—尽管门槛降低了些。我们依然要整理好需求和思路才能完成任务。以刚刚的 WordPress 插件为例,如果只是说「做一个插件支持以『分类目录』归类展示文章列表」,那么有可能会作出很多不同版本的插件。

事实上,这也是 software engineer 和 coder 的区别。前者更多的工作在于将一个较大的任务拆分成小任务,通过合适的方式组合起来完成;而后者更强调翻译这项工作。

这也让我想起,前段时间和朋友聊起,我们这行未来能做什么。我并没有想好这个问题,但是会让我想到如果要转行,什么能力是通用的?在我看来其中一个就是解决问题的思路。小的问题比如家里一颗灯泡坏了怎么修?大的问题类似如果要设计一套银行系统需要怎么完成(我现在自然还不能胜任这项工作)?

也正是因此,前段时间教两个朋友编程的时候,我并没有怎么注重语法,而是更关注解决问题的思路。通过自然语言把问题拆解出步骤,然后翻译成代码。回想起当年自己自学的时候那种无力感实在痛苦,已经忘记是怎么熬过来的了。幸运的是,现在的人不必如此。

前段时间去了趟大英博物馆,看到了镇馆之宝罗塞塔石碑。两百多年前,法国人商博良 (Jean-François Champollion) 以这块石碑为突破口,破译了古埃及圣书体,成为埃及学创始人。这块石碑上印有三种文字,分别是古埃及圣书体、世俗体及古希腊文。或许在未来,非自然语言的代码都会被人遗忘。而某一段写着自然语言注释的代码会成为新的罗塞塔石碑。

WordPress文章归档页面分组和分页

作者 老王
2024年6月15日 20:41
WordPress 归档页面是一个网站的历史内容存档,它允许用户浏览网站的过去内容。它的存在有以下几个意义:为用户提供内容索引和历史参考,提供搜索引擎优化,方便用户查找特定时间段的内容,对网站管理员来说,归档页面可以帮助管理网站的内容,通过定期归档旧内容,可以保持网站的速度和效率。
❌
❌