解析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 wp_head()函数使页面顶部总空白28px

在wordpress主题中的header.php中,有一个wp_head()函数,外表上看不出什么玄机,只能在阅读器中查看源代码...

WordPress小工具制造办法【左近期评论工具制造】

本文实例讲述了WordPress小工具制造办法。分享给大家供大家参考,详细如下: WordPress是一个领有着无可比拟...

wordpress优化头部 去掉版权等信息 wordpress去掉generator

wordpress在默许状况下,头部会呈现很多平常用不到的html代码,比方: 复制代码代码如下: <link rel="altern...

WordPress 公布工夫超越15天的文章中展现广告

第一步: 性能完成起来很简略,用PHP编辑器关上以后模版的 functions.php文件。 复制以下代码出来: 复制代...

WordPress 无Gzip模块主机完成Gzip紧缩js和css

明天给大家引见两个兄弟版的WordPress插件:WP CSS和WP JS,作者都是Halmat Ferello。 WP CSS WP CSS能主动...

WordPress给博客题目加上页码的办法

本文实例讲述了WordPress给博客题目加上页码的办法。分享给大家供大家参考。详细剖析如下: 很多冤家为了优...

需求提交

客服服务