普通视图

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

Hera 主题修改

作者 LMS
2025年2月17日 20:02

用上大发的 hera 主题并搞定三件套后,一直就断断续续的折腾着。主要还是太忙了,下班后要么就是被小娃娃给限制了自由,要么就是刷小视频,要么就是看小说,都没时间折腾。

目前对 hera 主题主要做了下面的修改:

  1. 修复了评论提交后不保存 comment_author_url 的 bug。
  2. 修改 post_id 为自定义的 url,然后给三件套添加了获取前 12 条评论的功能,见 友链 页面的“最新评论”。
  3. 添加文章热力图,见 时光 页面。
  4. 把原来的友链朋友圈加回来了,见 友链 页面的“博友动态”。
  5. 添加了个简易的,通过 json 搜索的功能,好像还不大好用。
  6. 相对时间分钟显示为秒的 bug,好奇葩的就是 i18n "timeFormat.minutes" 多个 S 不起作用。
  7. 其他一些样式上的小修改。

本来还想着给三件套添加评论邮件通知功能,貌似有相关的 SMTP 的 js 模块,import 后加上对应的邮件服务就能实现了,类似 twikoo 那样。奈何 deepseek 总是“服务器繁忙,请稍后再试”,也就没继续了。

另外就是木木的那个 memos 还没加到主题里面来,要折腾还是有东西可折腾的。

好了,消灭 2 月 0 post。

那个折腾了半个的 Hugo 主题算是折腾完了

作者 LMS
2024年7月23日 20:59

一个月前,折腾起了 Hugo 主题(太久没用主题功能,插入文章短代码都忘记了)。

因为当时刚好看到木木老师在“哔哔广场”发了一条内容为 『有研究表明,人在消极情绪状态下,做精细的且需要耐心的工作会更好。所以,我们在大学生身上常见到的一种表现是:人一失恋,就容易过英语六级。』 的哔哔,于是在发博客的时候给自己的折腾找了个失恋的理由,没想到大家注意力都转到了“失恋”上去,没人关心那折腾了一半的 Hugo 主题。

后来有一搭没一搭的陆续码着玩,上周末算是折腾完了吧。只是纯粹自娱自乐,没觉得有啥用就丢那里了。今天想着好久没更新博客,就找这么个理由唠一篇吧。

给这个暂时取名为 Quan 的仿微信朋友圈主题弄了个演示站: quan.lms.im

抓图就不抓了,直接 iframe 引用,有兴趣的可以自己点过去看看,为了保持人设,演示站主题还是失恋,手机访问效果更好。

在此要感谢一下各位热心的网友博友和各路神仙,以下排名分先后:vscode, cloudflare, github, 通义灵码, cursor, Anubis, fatesinger(大发), 林木木, koobai, CodeGeeX。哦,对了,还有那个让我失恋的女友(无中生友)。

演示站用 Github 来托管数据 Cloudflare 来建站,虽然有两个赛博菩萨的帮助,Hugo 用起来还是有许多不方便。想要发布内容就很麻烦,用 git push 又没法只对 content 内容单独 push,其他方法我也不懂,网上看说有人用 Obsidian + 插件 可以管理和发布内容,我是没搞清楚具体怎么操作。

另外就是评论了,如果要搞成朋友圈那样的评论模式,得有可以支持高灵活自定义的第三方评论,twikoo 感觉是不行了,不知道大发介绍的那个依托于 cloudflare 行不行,看着要什么回调地址什么的好复杂,就没去研究了。目前演示站的评论就是空壳,因为不能用导致我连评论表情那块都随便将就在那里。

没得评论当然点赞也没有了。

话说,想起老张那个被评论为“没有文学功底却总爱写东西”的事情,虽然我这博客没啥人看,但不免也有些压力,各位博友多包涵,多担当。

折腾了半个 Hugo 主题

作者 LMS
2024年6月16日 21:49

最近失恋刚好有空,所以想找个东西折腾,于是就搞起了 Hugo 的主题,花了两天时间,参考了一些主题语法,顺便也请教木木老师,最终弄了个下面的半个“朋友圈”主题。

hugo-quan
hugo-quan

手机滚动截屏的,比较长,我把后面的给隐藏了,点击可以看大图,不过好像也没啥好看,图片压缩的太利害了。

整体是照着微信朋友圈作的,目前其实就一个首页的样子,分了几个功能:

  1. 正常文字发布,两三小段还可以,长篇大幅的不好看。
  2. 区分图片数量分别为1、2、3及以上的显示,超过 3 其实就是 9 宫格了。
  3. 搞了个外链的样式,可以自定义外链Logo,也只能自定义,没有 api 获取 favcion 或者缩略图的。
  4. 使用木木老师的 bilibili 短代码功能,直接插入 B 站的视频。
  5. 可以使用短代码插入外链的视频或者音频,html5 播放器播放的,支持自定义封面。
  6. 使用木木老师推荐的 Aplayer + Meting 实现短代码插入网易云,好像其他的也可以,不过没试过。
  7. 虚假的位置显示,需要手动填写,不是自动生成。
  8. 黑白模式,这个没啥好说的。

因为基本不了解 go 语言,模板里面 html 和 go 语言混合着看起来其实挺吃力的。再加上 Hugo 主题不像 Wordpress 那样可以无视 Wordpress 本身折腾主题,Hugo 主题需要配合 Hugo 设置、内容预设、主题关联 3 个方面才能真正搞定,所以挺麻烦的。

做完了首页,突然就感觉进入贤者模式,好像没啥意思,尤其一些功能我实现不了,好像就作了个空壳。

  1. 右下角预设的两个点点,是点赞和评论,Hugo 是静态博客,不知道怎么实现点赞,Hugo 也没有评论,得第三方评论,这个自定义就比较差,估计搞不了想要的结果,刚好 docker 现在又被强,也懒得去部署评论测试了。
  2. 上面说的位置的信息,纯手工输入,原汁原味,自欺欺人。
  3. 用 Hugo 发布内容,搞个图片也不方便,木木同学说有插件,无形当中又要多个东西折腾,而且意味着得花钱钱找地方另外存储图片。

总体感觉,静态博客还是适合有技术的搞,它把博客从原来简单的提交到显示,变成了内容和存储两件非常具体的技术性问题。

如何在本地调试WordPress时忽略对wordpress.org的网络连接请求

作者 大致
2025年3月13日 10:43

本地调试WordPress时,为了保证代码的正确性,插件和主题作者往往会打开wp-config.php里的WP_DEBUG开关。如果您不知道这个开关,就不要往下看了。

define('WP_DEBUG', true);

这样PHP运行时的错误和警告就会以醒目的字体直接打印到网页上。
20250313_WP_local_debug_warning

但是这样会带来一个程序员的日经问题:是我的BUG我改,不是我的BUG莫挨老子!
按说WP这种成熟的产品是不会让用户看到警告和错误的。但是,由于众所周知的原因,WP内核、主题和插件升级所需要的WordPress的官网wordpress.org时灵时不灵,连不上的时候就会显示大面积的警告信息。
安装完成以后,后台这种需要连接到wordpress.org的地方大抵有4种:core update、theme update、 plugin update和translation api,出现在后台Dashboard、 Plugin、 Theme、 和Settings页面。其中Dashboard会调用前三种Update,Settings四种都会调用。
这些信息不仅是影响对于出错代码的判断(比如图中提示的“Cannot modify header information”,其实根本就不是本地header的问题),还会直接影响页面元素的渲染和操作。
那就必须要干掉它!

再次更新,

define('WP_HTTP_BLOCK_EXTERNAL', true);

这个宏屁用没用,还是得用我下面的方法。

开整。

//下面的action钩子调用的早,所以在加载主题或插件的时候就要直接remove掉,否则没机会了。
if ( defined( 'WP_DEBUG' ) && WP_DEBUG ) {
    remove_action('admin_init', '_maybe_update_core');
    remove_action('admin_init', '_maybe_update_plugins');
    remove_action('admin_init', '_maybe_update_themes');
    remove_action('init', 'wp_schedule_update_checks');

    //translations_api默认会返回false,之后会访问wordpress.org,返回空数组之后就不访问了。
    //Since 4.0.0
    add_filter('translations_api', '__return_empty_array');
}

//调试者作为admin,默认是有各种update权限的。这里令各种内部调用user_has_cap询问4种权限的结果强行置为false。
function _debug_ignore_wp_request ($allcaps, $caps, $args){
    $server_caps = array('install_languages', 'update_themes', 'update_plugins', 'update_core');
    foreach ($caps as $cap) {
        if ( in_array($cap, $server_caps)) {
            $allcaps[$cap] = false;
        }
    }
    return $allcaps;
}

function my_admin_init {
    if ( defined( 'WP_DEBUG' ) && WP_DEBUG ) {
        //下面的钩子很多不能移除得太早。
        //宁杀错不放过。
        remove_action('upgrader_process_complete', 'wp_update_plugins');
        remove_action('upgrader_process_complete', 'wp_update_themes');
        remove_action('load-plugins.php', 'wp_plugin_update_rows', 20);
        remove_action('load-themes.php', 'wp_theme_update_rows', 20);
        remove_action('load-plugins.php', 'wp_update_plugins');
        remove_action('load-themes.php', 'wp_update_themes');
        wp_unschedule_hook('wp_version_check');
        wp_unschedule_hook('wp_update_plugins');
        wp_unschedule_hook('wp_update_themes');

        remove_action('wp_version_check', 'wp_version_check');
        remove_action('load-plugins.php', 'wp_update_plugins');
        remove_action('load-update.php', 'wp_update_plugins');
        remove_action('load-update-core.php', 'wp_update_plugins');
        remove_action('wp_update_plugins', 'wp_update_plugins');
        remove_action('load-themes.php', 'wp_update_themes');
        remove_action('load-update.php', 'wp_update_themes');
        remove_action('load-update-core.php', 'wp_update_themes');
        remove_action('wp_update_themes', 'wp_update_themes');
        remove_action('update_option_WPLANG', 'wp_clean_update_cache', 10, 0);
        remove_action('wp_maybe_auto_update', 'wp_maybe_auto_update');
        add_filter('user_has_cap', '_debug_ignore_wp_request', 10, 3);
    }
}

add_action('admin_init','my_admin_init');

完事。这个世界清净了。


  • (1):农历每年冬至所在的月固定为十一月。如果两个冬至间有13次朔望,则该年产生闰月。13个月中,第一个没有二十四节气里的偶数节气的月份就是闰月。因为十一月是起调点,所以农历十二月和正月是不会出现闰月的,正月初一和第一个节气春分受的影响也很小。我数学不好,但查表得到的结果,从1950年到2069的120年间,闰年就是双春,双春就是闰年,一一对应,无一例外。闰月是典型的用太阳历调整月历的规则,所以农历是阴阳历而不是纯阴(月)历。

PUMA 5.0

作者 bigfa
2025年2月14日 18:27
WordPress 主题 Puma

今年是Puma 发布的第十年,春节期间我把主题重写了一下,主要是替换掉比较老的PHP 代码,新增了后台设置,同时对主题细节进行了调整,更加符合现代设计风格。

个人觉得Puma 还是一款挺有意义的主题。一方面该主题是我的一个分水岭,Puma 之前我一直停留在抄袭、模仿的阶段,从这开始算是有了我自己的风格。再就是当时网络质量没有现在这么好,前端还一直在追求极致性能优化,我重写的过程中发现我之前的代码十分简洁,质量还是非常高的。最后就是Puma 在简中圈的流传度远超我的想象,至今我还发现不少主题是由Puma 魔改的。

目前最新版本为5.0.10,最近更新日期2025/02/14

Github 地址

演示地址

同时我也发布了Hugo 版本

Github 地址

演示地址

WordPress 极简主题 Dear v1.2.0

作者 Jeff
2025年1月15日 15:53

独立博客至今仍是不少热爱分享的博主珍贵的自留地,会愿意投入精力去维护和滋养。通过博客,可以分享自己的专业知识、经验和见解,向读者提供有价值的信息,或展现魅力,或暗自陶醉。

来自读者的评论,有意义的互动,可能就是很多人坚持的原因。甚至有人提出,关闭了评论的博客,还叫博客吗?但总有利弊,开启评论意味着你需要投入更多的时间去回复和管理,抵抗 Spam 和无聊评论的骚扰,甚至引发言语攻击的事件。

所以,Dear 主题评论功能已增加,按需自取,哈哈。本次仅更新 WordPress 版本, Typecho 版本择日再改。

主要更新内容:

- 增加评论功能及样式(请在"设置">"评论"中关闭头像显示)
- 可选回复评论框跟随,默认禁用
- 部分样式优化

新版本请从主题发布页面获取 Github 链接:WordPress 版本

WordPress 主题 Hera

作者 bigfa
2025年1月2日 17:24
WordPress 主题 Hera

过气老博主的垂死挣扎。

当前版本0.1.3,最后更新日期2025/01/06

项目地址

演示地址

通用文档

英文字体采用了Open Sans

本主题使用古法制作,不依赖三方框架,依然不是区块主题,颜色选择了最新的潘通年度色。

本主题对本人插件都做了适配,强烈建议使用本人全家桶。

依旧是极致性能跑分,老派博主最后的倔强。

PC 端
移动端

本人一般不开启要饭模式,不过有条件的希望在Github 上赞助1刀,帮我点亮一下状态栏。

首页
文章页
分类卡片页

Hugo 版本

当前版本0.0.8,最后更新日期2025/01/07

使用方法

Farallon 同属本人第三代主题,配置方法基本相同。

更新日志

更新日志

尝试升级 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 石樱灯笼博客.

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。

WordPress & Typecho 极简主题 Dear v1.1.0

作者 Jeff
2024年9月22日 21:11

周末对 Dear 主题 WordPress & Typecho 版本都进行了小更新。主要增加独立的“搜索模板”,并对行距、次要字体等地方进行了小优化。

Dear 主题首页设置页面 id 后,会引用该页面的所有内容和样式,同学们可以对该页面尽情发挥想象力,以满足个性化需求。比如展示订阅地址、社交网站地址等等,也可以贴个封面图作为首页 Banner 等。如下图 Follow Me:WordPress & Typecho 极简主题 Dear v1.1.0-雅余

本次版本主要更新内容:

- 增加独立“搜索模板”
- CSS 样式移至 style.css 文件
- 首页默认显示8篇文章
- 部分样式优化

新版本请从主题发布页面获取 Github 链接:

WordPress 版本Typecho 版本

WordPress 版本 Text Only 和 Writing 主题错误修复

作者 Jeff
2024年9月7日 10:53

昨晚更新 Paper 主题的时候发现了一处拷贝错误,把旧主题的代码直接粘贴了,部分 PHP 版本没有提示错误,所以没发现。现已对 WordPress 版本 Text Only 和 Writing两个主题发新版本修复,可针对性更新。主要是 archives.php 和 search.php 两个模板文件。

详细可查看主题发布页:Text Only (WordPress)Writing (WordPress)

WordPress & Typecho 极简主题 Paper v1.1.0

作者 Jeff
2024年9月7日 00:32

Paper 这款纯文本的极简主题得到不少同学的喜爱,应部分同学的要求对主题进行了更新。主要增加独立的“搜索模板”,并对多处负空间进行调整,增加文字呼吸的空间。还修正了”文章归档“模板的一处错误,可针对性更新。

主要更新内容:

- 增加独立“搜索模板”
- 菜单及部分代码调整
- CSS 样式移至 style.css 文件
- 优化多处负空间距离
- 优化评论框样式
- 修复文章归档模板错误

新版本请从主题发布页面获取 Github 链接:

WordPress 版本Typecho 版本

Typecho 纯文本极简主题 Text Only v1.0.0 发布

作者 Jeff
2024年7月26日 23:58

应朋友们要求,制作了 Typecho 版本的 Text Only 主题,和 WordPress 版本样式上基本保持一致。使用愉快~

主题介绍如下:

Text Only 为纯文本极简主题,黑白配色,对程序极简优化,主题无 JS 和图片文件载入。

主题支持自定义背景、自定义菜单,保留搜索及评论功能;内置文章归档和搜索模板;已作中文字体优化,内置3种字体方案可选。

主题类型:极简 / 博客 / 纯文本 / 单栏 / 自适应 / 免费

提供 WordPress 版本Typecho 版本

主题免费开源,供学习交流,不提供售后支持。如有建议,欢迎评论留言,不喜勿喷。

主题可按授权方式继续随意改造,但望保留我的信息。感谢!

Typecho 纯文本极简主题 Text Only v1.0.0 发布-雅余

Typecho 纯文本极简主题 Text Only v1.0.0 发布-雅余

Typecho 纯文本极简主题 Text Only v1.0.0 发布-雅余

Typecho 纯文本极简主题 Text Only v1.0.0 发布-雅余

Typecho 纯文本极简主题 Text Only v1.0.0 发布-雅余

详细介绍和使用见主题两个版本的发布页面。

WordPress 纯文本极简主题:Text Only
Typecho 纯文本极简主题:Text Only

欢迎提供建议,以便继续完善。

WordPress & Typecho 极简主题 Writing v1.1.0

作者 Jeff
2024年7月21日 15:10

上个月收到 Github 上面一条 Issue,借周末时间对主题小改动了一下。毕竟不是全职运维,拖拖拉拉一个月才改。

主要更新内容:

- 增加独立“搜索模板”
- CSS 样式移至 style.css 文件
- 部分样式完善

新版本请从主题发布页面获取 Github 链接:

WordPress 版本Typecho 版本

-

小插曲:太不专业了,commit 的时候手一抖,把另外一个主题的文件给替换了,哈哈。

WordPress 纯文本极简主题 Text Only v1.0.0 发布

作者 Jeff
2024年7月8日 23:18

手痒,又发一款极简主题。这是一款初始化主题,仅提供最基础的页面展示,简洁的样式,简洁的代码,方便后期加工。提供两个页面模板,归档模板和独立搜索页面。较以前主题,对评论区进行了适当的美化。

主题介绍如下:

Text Only 为纯文本极简主题,黑白配色,对程序极简优化,主题无 JS 和图片文件载入。

主题支持自定义背景、自定义菜单,保留搜索及评论功能;内置文章归档和搜索模板;已作中文字体优化,内置3种字体方案可选。力求极简,对程序自带功能进行禁用,若对使用有影响,按需删除即可。

主题类型:极简 / 博客 / 纯文本 / 单栏 / 自适应 / 免费

目前仅提供 WordPress 版本。

主题免费开源,供学习交流,不提供售后支持。既然供学习交流,故也欢迎和我交流。如有建议,欢迎评论留言,不喜勿喷。

主题可按授权方式继续随意改造,但望保留我的信息。感谢!

WordPress 纯文本极简主题 Text Only v1.0.0 发布-雅余

WordPress 纯文本极简主题 Text Only v1.0.0 发布-雅余

WordPress 纯文本极简主题 Text Only v1.0.0 发布-雅余

WordPress 纯文本极简主题 Text Only v1.0.0 发布-雅余

WordPress 纯文本极简主题 Text Only v1.0.0 发布-雅余

详细介绍和使用见主题的发布页面。

WordPress 纯文本极简主题:Text Only

欢迎提供建议,以便继续完善。

近期的主题更新

作者 sys
2024年5月11日 23:23

当前自用的 WordPress 主题 Slocks 自上线以来,一直也没间断调整代码。业余无暇,就少改一改,最近时间宽裕,就多修了一修。今天有兴致发篇日志,记录一下最近的改动,巧合的是,搜出来主题发布官宣的文章,居然正好是两年前的今天,2022 年 5 月 11 号。

主题更新

这种感觉,虽然不像从压箱底的换季衣服兜里摸出一百块钱来那么洋洋得意,也不是丢了手机又失而复得那么轻松释然,更不如自己从无意之间发现自己于无意当中购买了自己在无意选择的几个号码作为幸运数字的彩票中了头奖那么欣喜若狂,但是看到这种没有多少意义的冥冥注定,我的心底还是泛出一丝波澜来。当然,我是记得那篇文章是 5 月份发布的,点开之前也闪念而过会不会是刚好两周年,那也仅是闪念。可尽管有了这闪念作为一点心理准备,当注视着这精确吻合的月份和日子,我的心底还是泛出一丝波澜来。

神奇。

两周年过去了,我的折腾劲头仍旧未减当年,不过倒是熟练了许多。而有了 AI 的加持,我的 Coding 时间也些许变成了“怎么当好一个提问者”。这里往下,记录都在哪里动刀。

第一处

oEmbed 站内文章样式定制。这是直接在编辑器贴上站内链接,就会生成一个文章块(还是叫卡片?)样式的文章链接,看本文紧挨第一段文字后的展示。oEmbed 当然不仅用于展示站内链接,还有国外各大类似于 Youtube 一样的视频站、社交媒体站等,就是说只要贴一个链接,WordPress 就会自动把嵌入到文章的媒体、链接样式做好了,雅。对我有什么用?貌似无,仅把这个功能还原出来。之前,是禁用了 oEmbed 功能相关的 js 资源输出。所谓样式定制,仅仅是用 css 把默认最大 550px 的宽度调整成 100% 了。

第二处

留言板和链接,这两个页面合二为一。作为非 PO 文的留言入口,留下一个足矣。除了删除原有的留言页,这里还涉及到一个评论迁移的问题。迁移成功后,当页的评论数量统计错误,编辑页面重存一下就好。这里是从 GPT 索取的代码,把留言板的评论迁入链接页:

UPDATE wp_comments SET comment_post_ID = '链接页ID' WHERE comment_post_ID = '留言页ID';

此外,链接页里,链接的样式现在改成了按钮,布局使用 Bootstrap 的网格类,也做了下优化。

第三处

代码高亮,从 SyntaxHighlighter Evolved 插件替换为主题原生支持的 Prism.js。我想,对于折腾 WP 主题的用户,代码高亮功能是必不可少的。不论是记录、还是科普,文章页上代码的字体和颜色,如果跟普通文字混为一谈别无二致,那就如同饭吃到一半掌柜的端来号称镇店美味的特色菜,客人听闻嘴里含着马上就要流出来的口水,瞪大了快要掉地上的眼珠子定睛一看:是一盘白米饭。

其实真就有这么的索然无味。我想,用这个类比来形容是极贴切,对于不折腾代码的人,可理解、可哑然。

第四处

Pingback 引用通知的启用和样式定制。在我的文章里贴上你的文章链接,你的文章评论区会出现一条评论,文字内容是我的文章题目和我的站名,并将文字赋链接,地址是我的文章,目的是告诉你:我引用你的文献了。我发布文章,就会自动 Ping 引用的链接,对方在评论区显示出来我的链接就是 Pingback。出于对垃圾评论控制、和莫名原因的考虑,多数站点禁用此功能。我亦把它启用起来,并在 comment walker 当中编写了输出的 html 结构、定制了 css 样式。

北京环球影城一日游

现在,这篇文章里边就有一条 Pingback,评论区见。显然,这属于站内 Ping。依据 WP 官方,使用 Slug 以避免站内 Ping。

第五处

评论 Ajax 提交及翻页的细节改进。完全基于 /wp-includes/js/comment-reply.js 的代码添加了 Ajax 评论提交、完善了评论表单移动的功能,而评论提交/翻页也均使用的 WordPress 的原生 Ajax 处理方式,维护和定制都方便多了。

第六处

这本质上不算一处,而应称为例行更新。引用的各种库文件,通常在放出新版后,更新到主题中。当前有 BootstrapFancyBox UIFont Awesome,当然还有业已停更的 Javascript-MD5、和 Prism.js,这就没办法追新了。

第七处

临时想起的,标签页里对标签的样式和布局也做了微调,也是直接套用的 Bootstrap 网格类做的调整。

结语

磨磨蹭蹭近两小时,文赶紧发了,不然时间到了明天再发,那就不是两周年了。

2022,端午安康

作者 叶子
2022年6月3日 13:45
2022,端午安康

端午

今天是2022.6.3,时间是真的够快的,已经许久未更新博客了。祝大家节日快乐。

主题

昨日的时候将主题换成了Paper主题,移植于Hugo-paper主题。是去年7月完成的一款主题。今年大家都换了,为了紧随大家的脚步,就也将主题换了。

疫情

3月至今被疫情折腾不轻,感觉人精神都有点问题。这次疫情比2020年的时候来的更突然、更凶猛。第一次亲身经历如此严重的疫情,我所在区一直封到5月中旬才算是慢慢解封。目前虽已完全解封,但大家都已成惊弓之鸟。核酸三日一做,不做进不了公共场所和公共交通工具;核酸七日不做,直接变灰码。

这次疫情,最对不起的人就是我老婆。对她而言,刚来这个城市没多久,除我之外,没有熟悉的人,也没有熟悉的地方。就被封闭在我们租住的地方两个多月之久,而我还不在身边。不过较为庆幸的是社区及时送来物资,让我老婆算是平安的度过这难熬的日子,否则啊,这吃饭可真是个老大难的问题。特别是当时同听魔都那夸张的物价,让我这个打工人瑟瑟发抖。

结语

还有很多的话不方便说,实在太难了我们,就留在心里吧。再一次祝大家节日愉快。希望每个人都能好好的。

2022,新的启程!新的开始!

作者 叶子
2022年1月27日 15:21

域名

原(小叶的自留地)YEZITING.COM已经易手他人,所以原小叶自留地的任何信息、内容,都与本人无关,请大家提高警惕,小心上当受骗。叶子也将博客改名为叶子笔记(YZRSS.COM)。新的名字,新的开始!

由于自己的弱智操作,在海外域名商购买的域名,暂时不能转入国内域名商和域名备案。故先将博客放置至朋友的机器上。待60天满时,回归国内且备案,不然诸多不便。

主题

希望新的一年里,能够做出一些大家还有自己喜欢的主题。现在的Wordpress版本迭代很快,感觉自己都跟不上WP的脚步了。

新年即将到来

新年新气象,提前祝大家阖家欢乐、虎虎生威,愿疫情早早退去。希望每个人都能在新的一年里实现自己的理想和愿望。

 

YEZITING主题付费阅读使用教程

作者 叶子
2018年10月30日 17:22
前言

本文章主要是为了让付费用户学会如何使用。

请一定仔细阅读,否则可能导致无法免费使用此接口

第一步

首先用手机扫码下载并安装有赞微小店”APP,然后进行账号注册(切记在APP里 小店 - 店铺管理 对账号进行认证)
[qr qrurl='https://wxd.youzan.com?']手机扫码[/qr]

第二步

注册好账号后,用注册的账号登录有赞云(youzanyun.com),并完善信息

第三步

创建应用(类型选择“自用型”)
YEZITING主题付费阅读使用教程

第四步

授权绑定(绑定你的微小店店铺,直到授权成功)
YEZITING主题付费阅读使用教程

注意:只要授权成功,就不要管别的了,否则你多创建了一些东西,就可能出现7天试用后收费的情况。

第五步

回到有赞云后台,选择刚才创建的应用,记下client_id、client_secret、授权店铺id。
YEZITING主题付费阅读使用教程
将这三个添加在主题设置-其他功能-付费查看对应的位置上(如下图)。
YEZITING主题付费阅读使用教程

第六步

开启推送服务并设置网址(这个步骤很关键,不设置的话该功能就会失效)
推送网址为https://你的域名/wp-content/themes/yeziting/payment/youzan/notify.php
在下图的位置输入然后点击保存
YEZITING主题付费阅读使用教程

第七步

这一步最重要,用户扫码成功后能否查看到隐藏的内容就靠这里了。
点击推送配置-交易消息V3-全选-保存(如下图)
YEZITING主题付费阅读使用教程

最后

最后你就成功了,然后发布文章查看下面,设置金额和你的要求,如下图
YEZITING主题付费阅读使用教程
如果要看实际效果可以去这里看看
[xx_insert_post ids=505,505]

❌
❌