WordPress挂钩:初学者指南
正在尝试对WordPress网站进行一些更改?HTML和CSS只能做到这一点。
如果您需要更改WordPress的行为方式,但找不到满足您需要的主题或插件,那么WordPress挂钩可能是您需要的答案。
理解挂钩是学习如何修改或创建插件和主题的重要步骤。但是,如果您尝试寻找钩子的确切含义及其工作方式的答案,您可能会找到大多数为开发人员编写的技术文章。
如果您是初学者,或者不知道如何编写代码,并且想了解挂钩,那该怎么办?
本文将为初学者解释WordPress挂钩,并教您如何使用它们自信地修改自己的WordPress站点。
WordPress中的几乎所有内容都使用挂钩,所以一旦理解了这个概念,就可以修改几乎所有内容。
什么是WordPress挂钩?
把你的WordPress网站想象成一个巨大的、混合媒体的拼贴在墙上。与飞溅的油漆、升级的贺卡和杂志剪贴画(你的主题、插件和内容)混合在一起的是一些挂钩。
这些挂钩就在那里,你可以在拼贴画中添加自己的作品,并根据自己的喜好进行定制。
WordPress挂钩就是这样工作的,允许您在某些位置“挂起”自己的代码。
您还可以将挂钩视为触发器。根据您使用的特定挂钩,您的代码将在某些区域触发。
以下是WordPress codex如何描述挂钩:
WordPress提供了挂钩,允许您的插件“挂钩”到WordPress的其余部分;也就是说,在特定时间调用插件中的函数,从而启动插件
有两种挂钩:行动和过滤器.
WordPress动作挂钩隐喻
动作挂钩将自定义函数设置为使用特定的WordPress事件触发。
比方说,你正在等待一个重要的包裹在周六到达你的家,但你有差事要办,不能在家里等着签收。所以你去找你的邻居萨拉,让她在你的包裹到达时签名。
如果您的请求是WordPress挂钩,则如下所示:
函数sign\u for\u package($sara\u is\u home){if($sara\u is\u home){echo“我将为该包签名!”;}}添加\u操作(“when\u package\u arrives”,“sign\u for\u package”,10,1);
在上面的示例中,代码等待包到达,然后发送Sara进行签名(如果她在家!)。
数字10和1是什么?
第一个数字设置功能的优先级:它应该在其他功能之前还是之后执行?默认值为10,因此我们将保留该值。大多数时候,这不会有什么不同。
第二个数字是函数中参数或变量的数量。我们只是使用变量$sara\u is\u home,所以它设置为1。
WordPress过滤器挂钩隐喻
过滤器挂钩是在对数据采取操作之前更改或过滤数据的函数。
假设Sara同意为你的包裹签名,如果你同意下次狗叫得太大声时让它安静下来。
我们可以为她的请求创建一个过滤器挂钩:
函数quiet\u down($dog){$dog=str\u replace(“bark”,“silence”,$dog);return$dog;}添加过滤器(dog\u barking、“quiet\u down”);
有了这个过滤器,触发的是狗叫。当这种情况发生时,每一声吠叫都被沉默所取代。
这是一个过滤器,而不是一个动作,因为我们正在改变已经存在的东西(吠叫变成沉默),而不是添加新的东西。
一个有用的现实例子
“所以,”你可能会想,“我真希望我能用WordPress过滤器阻止邻居的狗吠叫,但我做不到。动作和过滤器有什么实际用途?”
在每篇文章后添加内容,即使是在RSS中
假设你想在每篇帖子后自动添加一点内容。
你可以通过修改你的单曲来做到这一点。php模板文件,或通过使用after post小部件区域。但是使用这两种方法中的任何一种,您的新内容都不会显示在RSS提要中。
为了修改内容,使其显示在RSS提要中,您可以使用过滤器:
函数位于\u post\u content($content){if(!is\u feed()&&!is\u home()){$content。='像这篇文章吗?';$content。='”http://example.com/subscribe“>订阅我们的新闻稿!”;}返回$内容;}添加\u过滤器('the\u content','after\u post\u content');
这是一个过滤器,而不是一个操作,因为您正在修改帖子的内容,而不是添加一个全新的功能。
WordPress挂钩可以添加到函数的末尾。当前主题目录中的php文件。您还可以使用它们创建自己的插件。一定要备份您的站点在进行任何更改之前。
需要记住的几件事
查看WordPress的PHP编码标准
在开始创建自己的操作和过滤器之前,请查看WordPress的PHP编码标准.
WordPress是一个协作项目,您的功能将不仅与WordPress核心交互,还与其他主题和插件交互。如果我们都以一致的方式使用代码,那么它可以帮助每个人相处融洽,一起玩得很好。
为函数使用唯一名称
创建自己的钩子函数时,请确保使用唯一的名称。如果你碰巧使用了一个已经在你的网站上使用的函数名,它可能会使你的整个网站突然停止。
标准做法是使用与主题或插件名称匹配的前缀。例如,如果您正在创建一个名为Awesome WordPress plugin的插件,那么您可以在所有函数的前面加上awp\ux。
使用大量注释
注释不仅对其他人查看您的代码很有用,而且对您自己也很有用!您可能需要在几个月或几年后返回并修改代码,然后完全忘记您所做的事情。注释还使快速阅读和理解代码变得更容易。为了节省时间和麻烦,请使用注释来解释代码的运行情况,即使您现在觉得很明显。
结论
WordPress很容易用正确的主题或插件进行修改,但有时你想做一个你找不到主题或插件的独特更改。通过学习WordPress挂钩的工作原理,您将对WordPress有更全面的了解。