深入理解 WordPress Hook 的原理和使用方法

文 / @UTHEME

Hook机制:让WordPress变得更灵活

今天我们要说的Hook,不是童话故事里面,一只手变成了钩子的虎克船长,而是让WordPress变得灵活的Hook机制。WordPressHook可以让我们不用修改模板就能改变页面上面的功能或内容。

什么是WordPress Hook

如果我们把页面看作一个墙壁,Hook就是墙壁上的挂钩,把衣服、背包挂到墙壁上,墙壁上就有了这些东西,就不再是一个空白的墙壁了。

而在页面中,我们挂上去的不是衣服或背包,而是显示内容的一些功能函数。把这些功能函数,挂载到页面中定义好的Hook上,页面中就能显示出相应的内容。加载这些功能函数的方法是add_actionadd_filter,具体使用方法见‘把功能加载到主题模板中’部分,下面这张图就形象地说明了Hook的机制。

wordpress-hook

WordPress Hook在主题中的位置

Hook可以放到页面中的任何位置,今天我们就拿我开发WordPress主题时常用的框架来说吧,其中有两个Hook,一个在页面内容之前,一个在页面内容之后。

do_action('mx_page_before');//页面内容之前
do_action('mx_page_after');//页面内容之后

通过Hook把功能加载到主题模板中

模板中有了Hook,我们就可以把功能加载到模板中了。比如说,如果我需要在页面前面显示一个面包屑导航,而页面可能有很多模板,一个一个去修改虽然也能达到目的,但是却浪费了不少功夫,用Hook只需几行代码就能搞定。

/*显示面包屑导航*/
function wizhi_show_breadcrumb(){
if(function_exists('yoast_breadcrumb')){
yoast_breadcrumb('<p class="breadcrumbs">当前位置:','</p>');
}
}
add_action('mx_post_before','wizhi_show_breadcrumb');
add_action('mx_page_before','wizhi_show_breadcrumb');
添加UTHEME为好友
扫码添加UTHEME微信为好友
· 分享WordPress相关技术文章,主题上新与优惠动态早知道。
· 微信端最大WordPress社群,限时免费入群。