前言
昨天发了篇带密码的保护文章,但标题前面的“密码保护:”这五个字符实在令人讨厌。如下图:
一来使原来的文章标题从观感上弱化了,使得第一眼让人注意到的不是 “中秋节快乐!” 而是 “密码保护:”
二来可能对于不知道WordPress的人来说,你这篇文章的访问密码就是后面的“中秋节快乐!”,输入进去,诶,不对?!
所以就有了把这个碍眼的前缀给去了的想法,通过bing搜索方法,发现前面几条结果都是七八年前的,考虑到版本差异,于是就懒得接着找了。接下来我按照我的思路进行尝试。
省流版本:直接跳到最后一步 “Find Out”
第一步,查主题
首先我用vscode打开我网站(之前)所用的主题 corepress
的文件夹,全局搜索 密码保护
四个字,发现没有需要的结果。那肯定就是 WordPress
本身的设置了。
第二步,查WordPress
老规矩,能显示 密码保护:
这几个字,八成就是 php
文件定义的,全局一搜,找到了,在WordPress文件夹/wp-content/languages/zh_CN.po
(如下图)。我不想看到这几个字咋办,简单,删掉,保存。然后刷新页面,嘶,结果发现那几个字还在,看来问题根源不在这。
[clickshow]至于刚才删掉的内容,可以复原回去(把字打回去),不复原也OK,亲测没影响。[/clickshow]
第三步
上面那个文件应该是起翻译作用的,如果想追底层实现,还得是用英文查找。于是就搜索上图的 msgid
的值 Protected:
。找到了以下几个结果。
左侧红圈框住的三个结果都带有以下一段话:(从5.9版本开始)
Overwrites the default protected title format.
By default, WordPress will show password protected posts with a title of "Protected: %s", as the REST API communicates the protected status of a post in a machine readable format, we remove the "Protected: " prefix.
翻译之后是:
覆盖默认受保护的标题格式。
默认情况下,WordPress会显示一个标题为“Protected:%s”的密码保护的帖子,由于REST API以机器可读的格式传达一个帖子的受保护状态,我们删除了“Protected:”前缀。
看上去似乎没有影响,于是,查找上面的 js
文件,看了眼,似乎不是。那么,就只剩最后一个php文件了。
Find Out
位于wordpress文件夹/wp-includes
的 /post-template.php
文件,在其 128及141 行的:
$prepend = __( 'Protected: %s' );
$protected_title_format = apply_filters( 'protected_title_format', $prepend, $post );
想必就是我们要找的答案,根据函数注释可以看到,默认情况下 prepend
(前置)是 Protected:
紧接 %s
字符串(应该就是指文章原标题了)。那么,把 $prepend = __( 'Protected: %s' );
中的 Protected:
去掉,只保留 %s
(原文章标题)是不是就ok了。试试就试试。毕竟,[clickshow]不行的话就再还原回去咯~ [/clickshow]
删除,保存,刷新网页,成功!
至此,结束!
注意:更新wordPress后,需要重新设置,才能再次生效。
Comments NOTHING