您现在的位置是:首页 > cms教程 > WordPress教程WordPress教程
WordPress钩子函数do_action()详解
芷蕾2025-03-02 16:48:29WordPress教程已有12人查阅
导读要想随心所欲的给主题添加功能,wordpress的钩子和过滤器应该要能明白。wordpress钩子和过滤器也是插件开发的基本知识。准备工作--给主题的头部文件加上wp_head();函数
要想随心所欲的给主题添加功能,wordpress的钩子和过滤器应该要能明白。wordpress钩子和过滤器也是插件开发的基本知识。
准备工作--给主题的头部文件加上wp_head();函数
介绍与分析:要是不加这个函数,有的插件将不能正常工作!该函数位于wp-includes/general-template.php文件的1577行,原函数如下: ①可以看到这个wp_head函数调用了do_action函数,传入参数"wp_head"。该函数(do_action函数)位于wp-includes/plugin.php文件。不过这个函数就比较复杂了,这里就不讲解了,只需要明白会用就好。
②do_action函数:do_action执行了一个“动作”,这个动作名称就是这个参数"wp_head",这个“wp_head动作”是不需要定义的,do_action含有自动定义的功能。也就是不需要事先定义这个参数wp_head是什么、要干嘛,而do_action就会自动定义一个名叫wp_head的动作,并执行它。
但是,这个动作是要干什么,这里我们还需要一个函数--add_action()。注意,动作钩子的两个基本函数--add_action和do_action,位于同一个文件wp-includes/plugin.php中。
③add_action()函数可以给“动作”添加具体事务,比如我们已经定义并执行了一个动作“饭前”,然后我们add_action('饭前 ','洗手'),就给这个“饭前”动作添加了具体内容,在程序中来讲,“洗手”这个参数应该是个函数名称,也就是‘饭前’动作要执行这个函数。
我们do_action里面的动作--'wp_head',叫做动作钩子(hook),钩子可以挂东西,所以add_action就是往这个钩子上挂函数,然后执行那个钩子的时候,也就是执行所有挂在这个钩子上的函数!
钩子
函数: 简单示例一--通过wp_head()函数来往wp头部输出一个meta信息 我们只需要往wp_head动作上添加一个函数,输出meta信息即可!
上面的函数添加在哪里呢?主题的functions.php,或者其它主题被包含的函数文件,好吧,只要主题会执行的地方。
这个应用很简单,很多插件就是这样工作的,像这样来输出css或js代码。
简单示例二--通过钩子来传递参数
do_action('hookname',$arg_1,$arg_2,$arg_3),除了钩子名外,还要带3 个参数;然后add_action()中,除了钩子名,函数名,优先级,剩下那个就是参数的个数了,也就是挂靠的这个函数需要多少个参数。
do_action传了3个参数,那么对应的add_action()中的accepted_args--函数需要的参数个数,可以为0、1、2、3,少接受可以,但是多了就木有了。 可以看到定义并执行了一个叫“ashu”的动作钩子,并且传3个参数给动作函数,然后使用add_action,往这个钩子上挂了 2个函数,function1函数需要2个参数,function2需要3个参数,所以使用add_action的时候后面对应的参数个数也是2和3。然后优先级分别是10和1,所以function2先执行。
到这里,动作的使用已经很清楚了。然而关于动作钩子(hook)的函数不仅仅只有这两个,还有has_action() do_action_ref_array() remove_action() remove_all_action()....要想再深入了解,可以看官网了。
准备工作--给主题的头部文件加上wp_head();函数
介绍与分析:要是不加这个函数,有的插件将不能正常工作!该函数位于wp-includes/general-template.php文件的1577行,原函数如下: ①可以看到这个wp_head函数调用了do_action函数,传入参数"wp_head"。该函数(do_action函数)位于wp-includes/plugin.php文件。不过这个函数就比较复杂了,这里就不讲解了,只需要明白会用就好。
②do_action函数:do_action执行了一个“动作”,这个动作名称就是这个参数"wp_head",这个“wp_head动作”是不需要定义的,do_action含有自动定义的功能。也就是不需要事先定义这个参数wp_head是什么、要干嘛,而do_action就会自动定义一个名叫wp_head的动作,并执行它。
但是,这个动作是要干什么,这里我们还需要一个函数--add_action()。注意,动作钩子的两个基本函数--add_action和do_action,位于同一个文件wp-includes/plugin.php中。
③add_action()函数可以给“动作”添加具体事务,比如我们已经定义并执行了一个动作“饭前”,然后我们add_action('饭前 ','洗手'),就给这个“饭前”动作添加了具体内容,在程序中来讲,“洗手”这个参数应该是个函数名称,也就是‘饭前’动作要执行这个函数。
我们do_action里面的动作--'wp_head',叫做动作钩子(hook),钩子可以挂东西,所以add_action就是往这个钩子上挂函数,然后执行那个钩子的时候,也就是执行所有挂在这个钩子上的函数!
钩子
函数: 简单示例一--通过wp_head()函数来往wp头部输出一个meta信息 我们只需要往wp_head动作上添加一个函数,输出meta信息即可!
上面的函数添加在哪里呢?主题的functions.php,或者其它主题被包含的函数文件,好吧,只要主题会执行的地方。
这个应用很简单,很多插件就是这样工作的,像这样来输出css或js代码。
简单示例二--通过钩子来传递参数
do_action('hookname',$arg_1,$arg_2,$arg_3),除了钩子名外,还要带3 个参数;然后add_action()中,除了钩子名,函数名,优先级,剩下那个就是参数的个数了,也就是挂靠的这个函数需要多少个参数。
do_action传了3个参数,那么对应的add_action()中的accepted_args--函数需要的参数个数,可以为0、1、2、3,少接受可以,但是多了就木有了。 可以看到定义并执行了一个叫“ashu”的动作钩子,并且传3个参数给动作函数,然后使用add_action,往这个钩子上挂了 2个函数,function1函数需要2个参数,function2需要3个参数,所以使用add_action的时候后面对应的参数个数也是2和3。然后优先级分别是10和1,所以function2先执行。
到这里,动作的使用已经很清楚了。然而关于动作钩子(hook)的函数不仅仅只有这两个,还有has_action() do_action_ref_array() remove_action() remove_all_action()....要想再深入了解,可以看官网了。
本文标签:
很赞哦! (0)
暂无内容 |
暂无内容 |
暂无内容 |
暂无内容 |
随机图文
wordpress博客怎么写robots.txt
Robots.txt是放在博客根目录给搜索引擎看的一个文件,告诉搜索引擎什么链接能收录什么链接不能收录以及什么搜索引擎能够收录,在SEO中有着举足轻重的作用。限制部分用户角色进入WordPress后台的方法
有时我们想限制WordPress 部分用户角色访问后台,可以通过下面的代码实现。Wordpress实现自定义ajax请求的方式示例
Wordpress实现ajax请求,分为两种情况:登录用户发起的ajax请求和未登录用户发起的ajax请求,通过ajax传递的数据中,action是一个固定字段,而且action字段所对应的值必须和hook名称中的后缀一键自动备份WordPress博客的教程
数据备份是博客的头等大事,尤其是当你数据丢失或者网站被黑的时候,你会更加强烈的感觉到。对网站进行备份是网站运营期间必做的平常事情,因为无法预料网站什么时候会突然出问题
留言与评论 (共有 0 条评论) |