WordPress 函数do_action()和add_action()详解和应用举例

6个月前 (11-30) 浅唱丶
6分钟
115
0

do_action函数在wordpress的开发中使用非常广泛,wordpress官方也提供了非常多的动作钩子供开发者使用,所以了解并学会使用do_action可以让你在主题开发的过程中做到事半功倍的效果,下面就一起学习一下。

do_action函数声明(定义)作用

do_action函数是WordPress的内部函数,作用是创建一个行为钩子,它没有返回值,单纯的就是在特定的地方执行插件或者主题开发者挂载的函数,一般存在于某个特殊的节点或者事件上(比如开始加载主题模板的时候或者发布一篇文章的时候),该函数让wordpress变得更加强大,扩展性更加好/

do_action($tag, $arg);

do_action参数

这个函数可以包含两个或者多个变量,但是第一个$tag变量(动作钩子)是必须的,而且这个函数不会返回值。

  • $tag(字符串)(必须)要执行的动作的名字。
  • $arg(混合)(可选)额外的参数,会被传到调用的函数里,可以添加无限个,比如保存文章的时候触发 save_post 动作,就可以把保存的文章的 id 穿进去,让回调函数根据文章 id 进行操作。

do_action()函数应用示例

/**
* 创建一个welcome函数,内容为输出一段话,然后通过add_action创建一个挂钩
*/
function welcome(){
    echo '欢迎访问:小菜的IT网(https://www.xiaocaiit.cn)';
}
add_action('kuzhuti_top_welcome','welcome');
然后在任何地方可以通过do_action调用
/**
* 通过do_action执行kuzhuti_top_welcome动作
*/
do_action('kuzhuti_top_welcome')
执行效果:
WordPress 函数do_action()和add_action()详解和应用举例
就相当于直接执行
echo '欢迎访问:小菜的IT网(https://www.xiaocaiit.cn)';
这个示例比较简单,没有添加任何参数,如果能够理解的话,我们可以尝试添加一些参数,使其使用起来更加的方便,例如:
/**
* 创建一个welcome函数
* @param $name 名称
* @param $tiem 时间
*/
function welcome($name,$time){
echo $name.'你好,欢迎访问小菜的IT网,现在的时间是:'.date('Y-m-d h:i:s',$time);
}
add_action('kuzhuti_top_welcome','welcome',10, 2);
此时我们定义的动作钩子kuzhuti_top_welcome添加了两个参数,分别是$name$time,所以我们在使用do_action()的时候需要添加对应的参数。
<?= do_action('kuzhuti_top_welcome','浅唱',time())?>
执行一下:
WordPress 函数do_action()和add_action()详解和应用举例

一句话理解do_action()函数就是:执行挂载到钩子上的动作(回调函数实现的)。

上面的示例代码理解之后,肯定会有一个疑问,明明可以使用function定义一个函数就可以完成的事情,为什么要使用do_action这么麻烦呢。其实不然,从上面可以得知do_action一般是搭配add_action来使用的,我们要透彻掌握do_action就需要了解add_action

add_action()函数

add_action是WordPress核心在执行过程中的特定点或特定事件发生时启动的钩子。

add_action( string $tag, callable $function_to_add, int $priority = 10, int $accepted_args = 1 )

add_action参数

  • $tag (字符串)(必须)要执行的动作的名字。
  • $function_to_add(回调函数)(必须)您希望被调用的函数的名称。
  • $priority(数字)(可选)用于指定与特定操作相关联的函数的执行顺序。较低的数字对应较早的执行,具有相同优先级的函数按照它们添加到动作中的顺序执行,默认值:10。
  • $accepted_args(数字)(可选)函数接受的参数个数,默认值:1。

总结

add_action的参数中我们就可以得知,add_action对于同一动作可以多次添加不同的回调函数,并且设置不同的执行先后顺序,由此可见,在一些特殊的节点或者事件上,例如发布文章的流程中(wordpress已提供官方的该动作挂钩,此处仅为示例),添加一个do_action动作,就可以在其他主题或插件中通过add_action函数对原有的发布功能就进行拓展并实现更多的功能。

本文由:浅唱丶 发布于 小菜的IT网,转载需注明出处:https://www.xiaocaiit.cn/498.html
浅唱丶
作者

相关推荐

6个月前 (12-10)

worpdree开启调试模式WP_DEBUG帮助开发

wordpress开启调试模式可以帮助主题开发者更好的浏览错误信息,从而提升开发的效率。所以wordpress提供了调试模式开启的选项,我们可以在开发环境下使用调试模式。 WordPress开启 WP_DEBUG 调试模式 编辑网站根目录下...
6个月前 (12-06)

WordPress6.0新增文章图片过滤器

以往开发wordpress主题或者插件时,遇到需要更改文章内部的图片相关的功能时候,通常是使用the_content 过滤钩子通过正则表达式进行获取图片进行修改实现的。 但是正则表达式比较复杂,掌握不好非常容易出现错误,现在官方给我们提供了...

评论

已有0人参与了评论

扫一扫关注我们