解析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-3.7.1。 wordpress后盾: 外观==》菜单 左侧咱们能够看到:页面、链接、分类...

WordPress 防盗链设置办法分享

讯问后果却有些出人意料,居然是超流量了,应用这么久还是第一次遇到超量的状况。 登陆cPanel后盾查看也的确...

wordpress定时义务(wp-cron.php)造成主机CPU比拟高的处理方法

自从用了阿里云主机,真是没有省心过。 这两天网站CPU天天100+的,过一会就挂了,原来是wp-cron.php文件造成...

制造共性化的WordPress登陆界面的实例教程

共性化登陆界面的办法有两种,第一种是交换登陆背景,这个算是小型共性化吧: 在/wp-admin/images找到login...

z-blog完满转移到wordpress的办法分享

很多冤家刚建设博客的时分都是采纳国际优秀的博客零碎:Z-BLOG,用一段工夫当时很多人都想转移到wordpress,...

改良WordPress主题加载速度的技巧

1. 自定义主题图片大小 图片是WordPress主题的重要组成局部,但开发者们有时会忘了对主题图片进行优化。主题...

需求提交

客服服务