现在的位置: 首页 > WordPress教程 > 正文

WordPress密码保护文章标题前提示文字内容删除/修改

2014年10月14日 WordPress教程 ⁄ 共 1195字 暂无评论 ⁄ 阅读 1,753 次

因为有个别文章涉及版权,就想着给这些文章加个密码以防止内容被蜘蛛爬取或恶意采集。但加过密码后发现在首页和内容页的文章标题前,都有“密码保护:”字样,看着很不舒服。于是就想着将密保文章标题前的提示文字删除掉,就有了这篇文章。具体修改方法如下:

找到主题所在文件夹,找到其中function.php文件,用Editplus或UE打开,在内容最后的“?>”之前添加如下代码:

代码这样写确实实现了将密码保护文章前提示文字删除的目的,但是,如果你有兴趣,我会从一个小白的角度告诉你为什么代码这样写达到了目的。为什么要从一个小白的角度呢?好吧,我不得不承认,因为我是个小白,所以只能从小白的角度分析……好了,下面看步骤吧:

1、  我们找到主题首页文件,如index.php,查看内容,可能内容会指向一个具体的控制页面。如:知更鸟主题会指向blog.php或cms.php。

2、  找到相应控制文件:blog.php,发现控制标题的是the_title()函数,百度查找该函数,发现函数定义代码在wp-includes/post-templete.php,查看代码发现,返回内容是由get_the_title()函数生成,继续查找get_the_title()函数,源码如下:

解析1:变量$post赋值为get_post()返回值,该函数位于wp-includes/post.php,它根据文章ID从数据库中wp_posts表中返回该文章相关数据(如标题、正文、作者等)的一个数组,关于该表的详解见“WordPress数据库表及字段详解”。

解析2:如果文章有密码,则对变量$protected_title_format进行赋值,该值为值“__('Protected: %s')”经过挂载在过滤钩子protected_title_format上的函数处理后的返回值。__()该函数位于wp-includes/l10n.php,单独一个参数时直接返回该值,也就是要处理的值其实为文本Protected: %s。然后对变量$title进行重新赋值,该值为原$title经过以$protected_title_format为格式的格式化函数处理的的值。看到这里我们基本就明白了,想改变标题前文字关键就在过滤钩子protected_title_format上,我们只要在该钩子上添加一个函数仅返回该标题格式即‘%s’即可,这样,你就懂了我们开始的代码为什么那样写了。当然,你可能还不懂什么是过滤钩子,不懂add_filter()函数和apply_filters()函数的作用机理,那么,详见文章“WordPress过滤钩子函数add_filter()、apply_filters()源码解析”吧!

» 声明:本站文章源于个人经验总结或书籍、互联网转载,内容仅用于个人学习,请勿转载,否则后果自负!

给我留言

留言无头像?