共计 1432 个字符,预计需要花费 4 分钟才能阅读完成。
作为一个写博十余年的老博主,实在是没有精力折腾各种新东西。但近期博客程序被入侵事件让我不得不换掉了使用很久的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,让他给我写一个屏蔽键盘左右键的插件,修改一次后,解决问题。
现在,我的博客将暂时屏蔽键盘左右键,按下时会弹出对话框,虽然也有一定影响,但总比吞掉辛辛苦苦敲下的文字强吧。
左右键问题,可以加一行代码仅在评论框禁用。全站还是可用的。
if (keycode == 37 && x!=document.activeElement)
谢谢指导,根据你的代码,结合AI修改,现在勉强能用了。只是必须要弹出对话框,不然代码会失效。
定义:var x = document.getElementById(‘comment’);
改成适合自己的很重要。
轻易也不敢修改。随着每次更新,以前修改的往往就失效了。
评论者URL加跳转一个是是为了防止有人通过刷留言换取外链权重(不过现代搜索引擎倒是不用太在乎这个),另一个其实是防止留言者的域名过期后被其他有害网站买走用了(或者他的网站被黑了),结果在搜索引擎和安全软件的眼里,站里这个直接链接URL就变成在引导用户访问有害站点了。在搜索引擎里被导致站点被搜索引擎警告,降权,甚至屏蔽、弹窗提醒危险网站。(如果是国内有备案的,甚至有可能会导致备案被撤销)所以尽量站内一切外链都加一个,站外链接跳转功能,隔离一下。