惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Hacker News - Newest:
Hacker News - Newest: "LLM"
S
SegmentFault 最新的问题
The Cloudflare Blog
T
The Exploit Database - CXSecurity.com
C
CXSECURITY Database RSS Feed - CXSecurity.com
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
P
Privacy & Cybersecurity Law Blog
有赞技术团队
有赞技术团队
www.infosecurity-magazine.com
www.infosecurity-magazine.com
雷峰网
雷峰网
Google DeepMind News
Google DeepMind News
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
T
Threatpost
The Hacker News
The Hacker News
人人都是产品经理
人人都是产品经理
阮一峰的网络日志
阮一峰的网络日志
大猫的无限游戏
大猫的无限游戏
L
Lohrmann on Cybersecurity
cs.AI updates on arXiv.org
cs.AI updates on arXiv.org
W
WeLiveSecurity
T
Threat Research - Cisco Blogs
博客园 - 叶小钗
量子位
Exploit-DB.com RSS Feed
Exploit-DB.com RSS Feed
Simon Willison's Weblog
Simon Willison's Weblog
I
Intezer
S
Secure Thoughts
V
V2EX
Apple Machine Learning Research
Apple Machine Learning Research
小众软件
小众软件
酷 壳 – CoolShell
酷 壳 – CoolShell
Microsoft Azure Blog
Microsoft Azure Blog
博客园_首页
Help Net Security
Help Net Security
爱范儿
爱范儿
C
Cybersecurity and Infrastructure Security Agency CISA
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
腾讯CDC
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
C
Check Point Blog
WordPress大学
WordPress大学
Last Week in AI
Last Week in AI
T
Tor Project blog
NISL@THU
NISL@THU
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
I
InfoQ
The Register - Security
The Register - Security
Recent Announcements
Recent Announcements
N
News and Events Feed by Topic
B
Blog RSS Feed

立云图志 - 云南

L.Plog.v1 超出预期的浏览体验 个性化图志系统 被嫌弃的博客图像处理 90% 只想好好听首歌 写而为己 对友链的思考 与 Typecho 相关 戒烟已十年 C/2025 A6 Lemmon Typecho 相册主题 Snapic Plus v6 寻求贡献者 Typecho 图志主题:Snapic Paper 给 Typecho 博客添加申请友链、站点收藏等功能 给 Typecho 博客添加旅行足迹地图标记功能 给 Typecho 博客添加评论者「都说了啥」功能 Typecho 记事阅读主题:Snapic Just 640px Typecho 多合一功能集插件:Lopwon Hub 视频:2012,Cage of Shadows 视频:紫金山 - 阿特拉斯彗星 C/2023 A3 Tsuchinshan-ATLAS Typecho SEO 搜索引擎优化插件 视频:老成昆线 7466/5 次慢火车 视频:2012,那年徒步 博客已十年 Typecho 相册主题:Snapic Plus v5 停止开发! 视频:2013,那年进藏 我的骑行影像 金沙江白鹤滩右岸挂壁小道 视频:滇西南行 视频:中缅边境,填坑行 追踪文昌近期火箭发射 又双叒叕,退票成功 一季山河:已完结 已退票 给 Typecho 博客添加文章页相册功能 给 Typecho 博客添加QQ空间「那年今日」功能 棋子 昆明下雪 十年足迹 Kodak DC20 世界上最纤薄的数码相机 未命名文档 拆机换电 Canon IXY Digital 出事方知厮是谁 失焦的街头照 废片吗? 四台潜望式卡片机 拍一拍 其实嘛……
预料中的又倒下一批 Typecho 主题、模板、插件
作者: Lopwon · 2025-06-14 · via 立云图志 - 云南

fix.jpg


前两天,网友「央」提醒 Typecho 发布了 1.3.0 rc 版,我下意识地深吸口气。果然,昨天对在售的主题/模板/插件,传入新版 Typecho 中运行,各种报错。

一种情况是,自己在制作时,有些功能使用了偏方获取数据,出现兼容问题,如:


    foreach ($result as $value) { // 遍历文章数据 $result
        $value = Typecho_Widget::widget('Widget_Abstract_Contents')->filter($value); // 坊间偏方获取数据
        $permalink = $value['permalink']; // 文章链接
    }

    // 在查询文章表时,坊间流传以上方式获取文章链接,但在 Typecho 1.3.0 rc 版,报错且失效
    // 解决方法,使用内置方法 widgetById 获取文章对象,通过匹配文章 cid 获取对应文章链接

    foreach ($result as $value) { // 遍历文章数据 $result
        $lopwon = Helper::widgetById('Contents', $value['cid']); // 内置方法 widgetById 获取文章对象,详见 var/Utils/Helper.php 文件
        $permalink = $lopwon->permalink; // 文章链接
    }

另一种情况,实属无奈,发现 1.3.0 rc 对附件 attachment 描述 text 的数据存储,由原来的 PHP 序列化字符串,调整为现在的 JSON 字符串,这就让之前通过反序列化获取数据的方式,全都失效了。为了让两种数据类型都能兼顾,且在新旧版本的 Typecho 下都能正常运行,只好判断获取:


    foreach ($result as $value) { // 遍历文章数据 $result
        $textData = $value['text']; // 该值之前为 PHP 序列化字符串,现在为 JSON 字符串
        $valueText = null;

        // 先尝试解析 JSON (Typecho 1.3.0 rc)
        $jsonData = json_decode($textData, true);

        if (json_last_error() === JSON_ERROR_NONE) {
            $valueText = $jsonData;
        }

        // 如果不是 JSON 再尝试反序列化 (Typecho 1.2.1)
        else {
            $unserializedData = @unserialize($textData);

            if ($unserializedData !== false) {
                $valueText = $unserializedData;
            }
        }

        // 如果解析失败,则跳过
        if ($valueText === null) {
            continue;
        }

        // 其他
    }

这两天,已对 Snapic Nojs / Snapic CMS / Snapic Just 640px 主题,以及 Snapic Page / Lopwon Link Ultra 单页模板,还有 Lopwon Hub 插件,做了 Typecho 1.3.0 rc 版的适配。

P.S. 计划年内重制 Snapic PaperSnapic Plus 主题。


后记

除了附件描述的数据存储方式做了改变外,发现 1.3.0 rc 对主题配置、插件配置的数据存储也做了同样的调整。

另外,当主题配置函数 themeConfig() 表单 Text Textarea 等,第三个参数(即表单默认值)非 null 时,而在配置主题设置时,清空表单保存设置后,版本 1.3.0 rc 会使用该表单默认值填充表单,但是,数据库存储该表单的数据却是 null 值,只有再次点击保存设置后,数据库才会更新该表单的数据为具体的值,显然,这样的处理方式会带来困扰。换言之,表单中的值,与数据库中的值,在以上首次提交保存设置的情况下,不是同步的,即:看似表单有值,其实数据库无值的情况。