WordPress是一个应用程序,在该应用程序中运行的所有内容都由挂钩调用。
然后有两个主要挂钩功能add_action
和add_filter
, 但正如你所见,register_activation_hook
和register_deactivation_hook
是在激活和停用上下文中使用的其他功能。
还有更多的钩子定义函数,比如钩子时间敏感操作(伪cron)的函数,比如wp_schedule_event
例如。
codex提供了一个很好的可用动作挂钩列表(按其一般称为序列排序),可用于add_actions
和过滤器一起使用add_filter
.
我不知道所有定义函数的钩子都有这样的列表。
正如我在评论中所说,这些函数中的大多数只是PHP的智能包装器call_user_func
为这些挂钩提供上下文的函数。
因此,当安装插件或主题时,它不会自动运行,即使从技术上来说,它们的文件是可以读取的(至少主文件是)。
在的主文件中plugin 或theme, 您将找到一个注释部分,定义插件/主题的参数,如主题名称、作者、版本等。
在主题中style.css
文件将被读取并包含类似的内容
/*
Theme Name: Twenty Thirteen
Theme URI: http://wordpress.org/themes/twentythirteen
Author: the WordPress team
Author URI: http://wordpress.org/
Description: The 2013 theme for WordPress takes us back to the blog, featuring a full range of post formats, each displayed beautifully in their own unique way. Design details abound, starting with a vibrant color scheme and matching header images, beautiful typography and icons, and a flexible layout that looks great on any device, big or small.
Version: 1.0
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Tags: black, brown, orange, tan, white, yellow, light, one-column, two-columns, right-sidebar, flexible-width, custom-header, custom-menu, editor-style, featured-images, microformats, post-formats, rtl-language-support, sticky-post, translation-ready
Text Domain: twentythirteen
This theme, like WordPress, is licensed under the GPL.
Use it to make something cool, have fun, and share what you\'ve learned with others.
*/
类似地,在插件的主PHP文件中,您会发现一个注释部分,其中包含类似的内容
/*
Plugin Name: My Toolset
Plugin URI: http://URI_Of_Page_Describing_Plugin_and_Updates
Description: This describes my plugin in a short sentence
Version: 1.5
Author: John Smith
Author URI: http://URI_Of_The_Plugin_Author
License: GPL2
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Domain Path: /languages
Text Domain: my-toolset
*/
最后,一旦一个主题/插件被激活,它将继续按照WP的钩子加载顺序加载其余的文件,并加载开发人员钩住这些操作钩子或过滤器的所有内容。
在这些开发人员创建的函数中,对于特定的插件或主题,所有的魔法都会发生。
userabuser对WP加载顺序做了一个非常全面且值得一读的解释here.