WordPress平台建立在所谓的hook系统上。Hooks函数不仅可以用来连接程序,也可以用来自定义扩展名,从而创建更为直观的总体布局,并提供更多界面以便开发。 当你需要设计一个能够提供很多界面的主题,或者一个能被别人作为框架的插件时,你会发现Hooks函数的好处。
为了充分利用hooks的潜能,你也可以使用do_action()函数而不必创建自己的函数。
在下面的示例函数中,我把页脚函数 my_footer()放进主题的functions.php中。经过do_action()函数对my_footer()进行的定义,my_footer()会变成一个hook函数。
function my_footer() {
do_action('my_footer');
}
然后在闭合的body标签前调用主题模板(就目前情况而言,主题模板就是主题中的footer.php)中的实际函数。
<?php my_footer(); ?>
</body>
</html>
之后主题中的插件和函数就可以访问这段代码了。 此外,我也可以编写自己需要的函数,例如一个可以存储所有用于统计工具的代码段的函数。 我给它起名为example_function()。 需要用WordPress中典型的Hook功能来将example_function()连接到特定的地方。 自定义add_action() 函数后, 函数会在WordPress执行时也跟着执行。 然后我又用了另一个参数来确保hook的优先级(这不是必要操作)。 优先级默认值是10,但由于我只通过Hook设置了一个优先级,所以这里优先级的默认值影响不大。
add_action('my_footer', 'example_function', 1);
我们可以再创建一个函数来更好地了解hook的优先级,这个函数能够为我的Hook提供更多内容,这样就可以连接到example_function_2()函数中。但example_function_2()的优先级低于example_function(),只有example_function()执行完毕后,才能执行example_function_2()。
add_action('my_footer', 'example_function_2', 2);
用户可以利用Hook的这种特性设计简洁的解决方案。 Hook在处理页脚中的小片代码段时也非常有效,它可以把这项代码段存放在一个函数中,然后用户可以轻易地禁用这些代码。 用户可以在后台通过Hooks和function.php,或者主题中的某个选项页面来控制各项进程。
在所有WordPress版本(包括最新的WordPress 2.8)中,Hooks的特性都是可用的。
原文:Define Your Own WordPress Action Hooks
分类:新闻资讯
标签:Action Hooks, 开发设计