我将介绍自己探索和修改程序源代码的方法。
开放源代码的好处
在我还是学生的时候,开放源代码这个词就被广泛使用了。
甚至在此之前,基于 BSD 的 un*x 和 GNU 产品的源代码就已向公众发布,但直到 30 年前 Linux 开始广泛使用,许可证才得以确定,源代码才得以更积极地发布。
不用说,开放源代码的优势在于任何人都可以看到源代码。如果对程序的运行有疑问,而源代码又是公开的,那么就可以对原因进行调查,只要稍加了解,就可以纠正错误。
我昨晚发表的文章(或者说,日期已经更改)只能修改,因为源代码是公开的。
就我个人而言,与封闭源代码软件相比,我更喜欢开放源代码软件。
如何探索源代码
从这个案例研究中,我将介绍我是如何探索源代码的,以及我的方法。
关键词选择
首先,要寻找关键词。
这一次,网站上的口头禅区块出了问题。
源代码几乎都有英文注释;如果把 WordPress 管理界面转为英文,查看相关区块的英文说明,就会发现它是 “网站标语”。
在日语中是 “口头禅”,但在英语中是 “标语”。
现在你知道你要找的关键词是 “标语 “了。
此外,在谷歌上搜索 “网站标语 “时发现,您可以从 bloginfo(‘description’) 中获取标语。
在关键字中添加 “bloginfo “和 “description”。
递归搜索(grep -r)
确定关键字后,在源代码的所有文件中查找包含关键字的文件。
通过 ssh 进入租用服务器,在安装 WordPress 的目录下运行 grep 命令。
grep -r 'tagline'
grep -r 'bloginfo'
grep -r 'description'
Bash-r “选项会递归搜索每个文件。
运行 grep 命令将显示包含每个关键词的文件名和相应的行。
这样就能大致知道哪些文件受到了影响:将 grep 命令的结果导入 less(pager),然后搜索其他关键字。
grep -r 'tagline' | less
Bash就 WordPress 而言,主题和插件位于 wp-content 目录中,而 WordPress 本身则位于 wp-includes 目录中。你可以在 block 目录中找到相关文件,猜测它们就在 block 目录中。
结果,我们找到了 wp-includes/blocks/site-tagline.php 文件。
修复和运行检查
确定相关文件后,先进行备份。
cp site-tagline.php site-tagline.php.orig
Bash这将使您能够撤销任何问题。
在编辑器中打开 site-tagline.php(这次用 vim),用 “bloginfo “或 “description “搜索相关行。
function render_block_core_site_tagline( $attributes ) {
$site_tagline = get_bloginfo( 'description' );
if ( ! $site_tagline ) {
return;
}
site-tagline.php我发现我是通过 get_bloginfo(‘description’)来获取标语的,因此我将其改为通过 bloginfo(‘description’) 来获取。对 bloginfo(‘description’) 做了以下修改。
由于无法检查缓存是否仍然存在,请清除 LiteSpeed Cache 插件的缓存,并清除内联 CSS 和内联 JS。然后加载页面并检查运行情况。
在这种情况下,这种修改确保了网站标语的多语种性,以匹配页面的地域性。
至此,校正工作完成。
Musubi
我已经介绍了我通常是如何探索和修改源代码的。
我并没有做什么特别的事情。但是,从头开始理解所有源代码非常耗时,需要付出大量努力才能找到原因所在。
通过将调查重点放在关键点上,可以大大减少处理情况所需的工作量。
这需要一定的经验,但反复练习会减少修改源代码的障碍。
这次我用这种方法解决了问题,但原本最好是在 functions.php 中解决,而不是修改源代码;PHP 似乎不允许函数重定义,但我会寻找一种解决方法。
发表回复