博客升级后的维护日志[2021-02-04]

自去年 10 月底搬家后就基本没再写日志了,其间常登陆后台看到 WordPress 及其插件不停的有提示升级,每次都是能升就就升,至少前台的页面显示没多大问题。只有过一个小问题,左边最新评论的 Widget 显示不出东西来,把最后更新日期为 8 年前的 WP-RecentComments 插件变成了 Decent Comments 后解决。

昨天才开始琢磨着写一篇关于 Mockito Mock 静态方法的日志,才意识到一直以来不知拒绝的跟风似的升级 WordPress 主体和插件给后台带来了不得不面对的问题。

首先,传文件总是失败,在 Media 或 Add Media 时也无法浏览图片,翻看 Apache2 的错误日志也没找到问题。无奈,手工通过 SCP 上传吧,一登陆到服务器上却发现即使界面提示失败,但文件实际上是在已上传到了服务器上了的。先这么着吧,切换编辑器到文本模式手工写 <img> 标签来引用图片。

再需往日志中粘贴代码,原来那个 TinyMCE 编辑器工具栏上由某个插件放上去的添加代码的按钮也不见了,又不得不来到文本模式下写 <pre class="lang: java decode:true"></pre> 来粘贴代码。

昨天都不知道到底什么原因造成的,一则时间长了,对 WordPress 有些生疏,只注意到 Jetpack 断开连接后就再也无法设置成功,说是 /xmlrpc.php 返回的结果有问题,除了 XML-RPC server accepts POST request only. 外,在前端还有一堆的

if ( ! navigator.userAgent.match( /wp-(iphone|android|blackberry|nokia|windowsphone)/i ) ) {
    if ( ( navigator.userAgent.match( /iphone/i ) ) || ( navigator.userAgent.match( /ipod/i ) ) )
 ......

的输出。

一定时插件兼容性的问题,不管它了,先把日志写完,有空再去找原因。

要找到是一款插件的问题必须逐个去排查,可以一个一个的禁插件,或全禁了再一个一个的启用插件来重现问题。不想去动主站,于是复制整站建立一个站点来寻根问底。

全问插件禁用后,上传文件和管理 Media 是没问题的,直到同时启用了 Jetpack by WordPress.comJetpack's Mobile Theme 后上传和浏览文件又不行了。Jetpack's Mobile Theme 是从先前的 Jetpack by WordPress.com 插件中分离出来的,Jetpack by WordPress.com 已移除了把非响应式的主题转换为适配移动终端,它考虑到当前的主题基本是响应式的,可惜我所用的主题比较古老,也是年久失修。

解决办法可以禁用其中任意一个,可仍然对 Jetpack by WordPress.com 爱不释手,只能忍痛割断对移动终端的支持了,渴望将来有空重选另一款支持响应式的网站主题了,技术型的网站想来用电脑的浏览的偏多。

注:xmlrpc.php 的检测,GET 访问 /xmlrpc.php 只允许看到一行, 并且最后面不能有换行符

curl https://yanbin.blog/xmlrpc.php
XML-RPC server accepts POST requests only.

还能用 POST 来测试一下 /xmlrpc.php,看如下正常的请求与结果

curl -A 'Jetpack by WordPress.com' -d '<methodCall><methodName>demo.sayHello</methodName></methodCall>' https://yanbin.blog/xmlrpc.php
<?xml version="1.0" encoding="UTF-8"?>
<methodResponse>
    <params>
    <param>
    <value>
        <string>Hello!</string>
    </value>
    </param>
    </params>
</methodResponse>

再者,作为一个编程网站不能方便的插入代码也是无法接受的,可突然间忘记了是哪个插件往 Classic Editor 上添加到 代码 工具按钮,因为之前自己写过代码自定过编辑器的按钮。不过隐约中感觉到 Crayon Syntax Highlighter 可能又出兼容性的问题了,曾经升级 PHP 版本到 7 后对它动过一次手术(Fix for Crayon Syntax Highlighter WordPress Plugin and PHP 7.3 Fatal Error),查看一下插件 Crayon Syntax Highliter 的最新更新也是在 5 年以前,到了该放弃的时候了。

还好找到一个它的完美替代品 Urvanov Syntax Highlighter, 而且它们底层的语法高亮是一样的实现,简单是无缝切换。还注意到 Urvanov Syntax Highlighter 的其中一个作者就是写 Crayon Syntax Highliter 的,所以不再维护后者是有理由的。

继续深究 Urvanov Syntax Highlighter 的设置界面,连标题都还是 Crayon Syntax Highlighter Settings。在这个页面中,Tag Editor 启用

[✓] Display the Tag Editor in any TinyMCE instances on the frontend (e.g. bbPress)

后,编辑器又有了插件代码的按钮

最后那个按钮,点击它便弹出窗口,就可轻松插入代码,选择语法等众多的选项。

整顿完最重大的两个问题 上传/浏览文件 和 插入/编辑代码 后,又可以快乐的写日志了,至后寻找一个响应式,符合自己口味的主题,那是后话。

类别: Uncategorized. 标签: . 阅读(20). 订阅评论. TrackBack.
guest
0 Comments
Inline Feedbacks
View all comments
0
Would love your thoughts, please comment.x
()
x