WordPress中的Hook原理和流程

WordPress是一个成千上万的程序员历经20余年的时间打造出来的网站系统,其万能程度可谓只手遮天,在网站搭建方面有着不可替代的地位。

据2023年5月15日23点37分在w3techs看到的不知道哪里来的统计中,WordPress占据内容管理系统的63.3%;占据所有类型网站的43.1%,远远将第二名甩在后面。

图片[1]-WordPress中的Hook原理和流程 - KEKC博客-KEKC博客
灰色为所有类型网站占比,绿色为内容管理系统占比

WordPress这么厉害,我觉得一大方面是它的Hook,在WordPress中,有着大量的动作钩子和过滤钩子,这极大的使得WordPress具有很高的可自定义性,同时又方便将一个个强大的功能使用Hook封装起来,要用的时候Hook一下,以达到我们的需求。

而在国内,我找WordPress的Hook原理,翻阅了大量的文档也没人说清,索性就自己来了。下方是我总结的一个WordPress的Hook流程图:

图片[2]-WordPress中的Hook原理和流程 - KEKC博客-KEKC博客

我们可以发现Hook总是先添加到全局变量$wp_filter中,再去执行Hook,在下面的例子中,我们也能看到这一点。

1、错误的Hook,不会输出666:

<?php
do_action("aaa");
add_action("aaa",function(){echo 666;});

2、正确的Hook,会输出666:

<?php
add_action("aaa",function(){echo 666;});
do_action("aaa");

© 版权声明
THE END
喜欢就支持一下吧
点赞14 分享