解析WordPress中函数钩子hook的作用及根本用法

WordPress 的插件机制实际上只的就是这个 Hook 了,它中文被翻译成钩子,容许你参加 WordPress 外围的运转,是一个十分棒的货色,上面咱们来具体理解一下它。
钩子分类

钩子分为两种,一种叫做举措(action),还有一种叫做过滤器(filter)。这两种钩子完成原理根本一样,后边会讲到,应用上的区别在于过滤器有前往值,而举措没有。

举措的理念是让你在一种状况或许一个特地的地位执行一些函数,比方发送一封邮件等;过滤器则是让你修正 WordPress 外围需求用到的一个值,而后 WordPress 再用这些值做一些事件,比方函数的前往值等。

举措钩子

wp_head 是一个很罕用的举措钩子,在开发主题进程中,**都会在 head 标签里加上 wp_head() 函数,现实上,正是这个函数调用了 wp_head 钩子。

假如插件**想要在 head 标签里增加一句话,就能够应用 wp_head 钩子,下边是个简略的例子。

//在 head 标签增加一些内容
function Bing_add_head_tag(){
  echo '增加内容';
}
add_action( 'wp_head', 'Bing_add_head_tag' );

增加代码后,查看前台的网页源代码,就能在 head 标签里看到咱们增加的内容了。

上边是一个简略的例子,只是打印了一句话。利用这个钩子,咱们还能够做一个遇到 404 页面给治理员发送一封邮件的插件,下边简略的写了一个。

//遇到 404 页面给治理员发送邮件
function Bing_404_page_mail(){
  if( !is_404() ) return;//假如不是 404 页面就加入函数
  $to = get_option( 'admin_email' );//获取治理员地址
  $subject = '遇到 404 页面啦!';//邮件题目
  $message = '404 页面的地址:http://' . $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'];//邮件内容
  wp_mail( $to, $subject, $message );//发送邮件
}
add_action( 'wp_head', 'Bing_404_page_mail' );

过滤器钩子

依据我的亲自经验,可能过滤器钩子会难了解些,尤其对不相熟 PHP 的人来说。

过滤器钩子能够让你改一些货色的值,过滤器回调函数会承受一个参数,这就是以后的值。还记得那个用来调用文章内容的 the_content() 函数吧,这个函数就提供了一个 the_content 过滤器。

给 the_content 钩子增加一个函数,这个函数需求接纳一个参数,这个参数就是以后的值。

//文章内容全副链接新窗口关上
function Bing_autoblank( $content ){//$content 变量就是文章内容,由于其它过滤器也要过滤,所以这个内容可能是通过其它函数过滤的
  $content = str_replace( '<a', '<a target="_blank"', $content );//增加 target="_blank"
  return $content;//必需要把过滤后的内容前往回去,否则值就丢了
}
add_filter( 'the_content', 'Bing_autoblank' );

钩子原理

现实上,在调用 add_action() 和 add_filter() 的时分,只是向 $wp_filter 全局变量增加了一个数组元素,还要说的就是举措和过滤器是专用的一个全局变量,也就是说,过滤器和举措是不能重名的。

当调用 do_action() 的时分,会查找 $wp_filter 全局变量中都有哪些增加到此举措的函数,循环执行即可。

apply_filters() 比 do_action() 多了一个步奏,就是每次调用函数时还要接纳这个函数的前往值,最初把通过屡次过滤的值前往进来,供应用。

获取以后钩子列表
WordPress 的举措和过滤器是插件机制的外围局部,容许你在特定的中央自动增加本人需求执行的举措,普通应用 add_action() 和 add_filter() 函数挂载函数。

这些钩子被贮存在 $wp_filter 全局变量里,所以,要获取钩子列表,能够间接获取 $wp_filter 全局变量。

<pre><?php var_dump( $GLOBALS['wp_filter'] ); ?></pre>

上边的代码会打印出钩子列表。

以上就是安达网络工作室关于《解析WordPress中函数钩子hook的作用及基本用法》的一些看法。更多内容请查看本栏目更多内容!

本文相关话题: WordPress 函数 钩子 hook PHP编程
版权声明:本文为 安达网络工作室 转载文章,如有侵权请联系我们及时删除。
相关文章
wordpress罕用的函数、条件判别以及文件总结

WordPress根本模板文件 一套完好的WordPress模板应至多具备如下文件: style.css : CSS(款式表)文件 index....

较完满的WordPress文章摘要(截断)计划分享

当然, 尚有诸位长辈也曾把以上三种计划结合一二, 以达到更宽泛的顺应度. 不过, 这厢先前在网路上搜寻许久, ...

完满完成wordpress制止文章修订和主动保留的办法

应用Wordpress这么久不断很厌恶wordpress的文章修订和主动保留性能,也应用过超级开关插件能够制止wordpres...

详解WordPress开发中get_header()获取头部函数的用法

函数意义详解 从以后主题调用header.php文件。是不是很简略?好吧,假如你是老手的话这里要提示一下,这里的...

WordPress评论增加楼层显示的办法小结

本文实例总结了WordPress评论增加楼层显示的办法。分享给大家供大家参考。详细剖析如下: 第一步:要在评论...

wordpress暴门路 影响一切版本

缺点文件/{Path}/wp-includes/registration-functions.php 要害代码: &mdash;-> <?php /** * Deprecated. N...

需求提交

客服服务