什么是钩子?怎么用?

No.7大当家 发表了文章 • 3 个评论 • 366 次浏览 • 2016-05-07 23:21 • 来自相关话题

wordpress里的钩子到底是什么?为了简单易懂我就说点白话。
钩子‘学名’叫Hook,wordpress里有两种,主题用的是 [Action Hook]
不管他,直接说他是干啥的,比如我们想要在主题里引入一个 css 文件,一般呢就是找到header.php 找到相应的文职写上一句 HTML 比如
<link type="text/css" href="******.css" rel="stylesheet" />但是如果主题更新了,这句你自己添加的代码就被覆盖掉了。
但如果有了钩子,就不一样了
首先我会在相应的位置放上一个钩子,而且每个钩子有自己的名字,这个事后你只需要在function里写一点代码,在让他在这个钩子的位置显示出来就可以,就好比在这个钩子上挂上东西。
为什么要这么做?这样一来你所有的自定义的代码只放到一个文件就可以了,更新起来只备份一个文件
 
如何实现?
function myfooter() //自定义一个函数
{
echo '<script> ... </script>'; // 这里用echo直接输出,就会在相应的钩子上显示
}
add_action('wp_footer', 'myfooter');//这是关键,第一个参数是钩子的名称,第二个参数是你自定义的函数名,两者对应你要放的东西就放到相应的钩子上了
那么 No.7 上都有哪些钩子呢?
除了wordpress本身有的钩子我还添加了
breadcrumb_qzhai - 文章页标题下面有排图标 这个钩子在最后一个,这排图标是个ul 的 li 所以要加东西 要用li标签
single_middle_qzhai - 文章页 内容和评论中间的部分
comment_form_qzhai - 评论框 地下
footer_qzhai - body标签之前 查看全部
wordpress里的钩子到底是什么?为了简单易懂我就说点白话。
钩子‘学名’叫Hook,wordpress里有两种,主题用的是 [Action Hook]
不管他,直接说他是干啥的,比如我们想要在主题里引入一个 css 文件,一般呢就是找到header.php 找到相应的文职写上一句 HTML 比如
<link type="text/css" href="******.css" rel="stylesheet" />
但是如果主题更新了,这句你自己添加的代码就被覆盖掉了。
但如果有了钩子,就不一样了
首先我会在相应的位置放上一个钩子,而且每个钩子有自己的名字,这个事后你只需要在function里写一点代码,在让他在这个钩子的位置显示出来就可以,就好比在这个钩子上挂上东西。
为什么要这么做?这样一来你所有的自定义的代码只放到一个文件就可以了,更新起来只备份一个文件
 
如何实现?
function myfooter() //自定义一个函数
{
echo '<script> ... </script>'; // 这里用echo直接输出,就会在相应的钩子上显示
}
add_action('wp_footer', 'myfooter');//这是关键,第一个参数是钩子的名称,第二个参数是你自定义的函数名,两者对应你要放的东西就放到相应的钩子上了

那么 No.7 上都有哪些钩子呢?
除了wordpress本身有的钩子我还添加了
breadcrumb_qzhai - 文章页标题下面有排图标 这个钩子在最后一个,这排图标是个ul 的 li 所以要加东西 要用li标签
single_middle_qzhai - 文章页 内容和评论中间的部分
comment_form_qzhai - 评论框 地下
footer_qzhai - body标签之前