get_template_part() 的钩子详解

April 16th 2012 评论(0)

因为在官方主题(Twenty Eleven)中 get_template_part() 函数被大量使用,所以就目前来看,该函数应该算是比较热门的一个函数了,之前有写过一篇文章讲述该函数的具体使用方法,在这里也就不便再赘述,本文主要针对该函数的 add_action 中的 hook $tag 值进行探讨,因为,WP hook 中林林总总有那么些函数在$tag 值中比较让人费解。

与普通hook的区别

普通的hook的$tag 是一个固定值,而 get_template_part() 确是一个可变值,好吧先不说,wp这么做给我们实现一个简单功能带来多少麻烦,但如此设置确实给多样化的主题实现带来了不少方便之处。
实现这一原理的源代码如下,截取自 WordPress 源程序。

function get_template_part( $slug, $name = null ) {//$tag = "get_template_part_{$slug}"
//也就是,get_template_part_+你当时设置的$slug值do_action( "get_template_part_{$slug}", $slug, $name );$templates = array();if ( isset($name) )$templates[] = "{$slug}-{$name}.php";$templates[] = "{$slug}.php";locate_template($templates, true, false);
}

实例

像上面那样说,可能也许基本上有点看不明白,好吧给点实例

//复习一下get_template_part($slug, $name)的用法,
//如果你在主题里这样
get_template_part( 'index' , 'photo');
//那么 WP 会去找主题根目录下 index-photo.php 文件//那么我们想挂一个函数的话就得像如下
function addFunction ($slug, $name){echo $slug;
}
add_action("get_template_part_index","addFunction",10,2);

get_template_part() 函数相关推荐

  1. php 上下位置居中,CSS_css中position:fixed实现div在窗口上下左右居中,上下左右 居中 代码如下 复制 - phpStudy...

    css中position:fixed实现div在窗口上下左右居中 上下左右 居中 代码如下 复制代码代码如下: div{ position:fixed; margin:auto; left:0; ri ...

  2. wp/wordpress 自定义模板调用函数

    在主题开发的时候,我们不想直接将调用模板放在一级目录里面,防止文件被注入破坏,总是自定义一个inc文件夹,主题主要模块都放进去,需要的时候调用,这个时候就需要一个自定义模板调用函数,方便我们读取这些模 ...

  3. ?php if (have_posts()) : ?,WordPress中重置文章循环的rewind_posts()函数讲解

    有些时候,在索引页中(首页.分类文章.标签文章.作者文章索引--)提前进入 WordPress 文章循环中( Loop ),以获得一些我们想要获得的信息,但 WP 中,单一页面一般只会一次性跳入循环, ...

  4. 数据库中自定义排序规则,Mysql中自定义字段排序规则,Oracle中自定义字段排序规则,decode函数的用法,field函数的用法

    数据库中自定义排序 场景:有一张banner表,表中有一个status字段,有0, 1, 2三个状态位,我想要 1,0,2的自定义排序(这里是重点),然后再进行之上对sequence字段进行二次排序( ...

  5. Mysql函数group_concat、find_in_set 多值分隔字符字段进行数据库字段值翻译

    Mysql函数group_concat.find_in_set进行数据库字段值翻译 场景 配方表:记录包含的原料 sources表示原料,字段值之间用逗号分隔 原料表:对应原料id和原料名称 现需要查 ...

  6. C++ 笔记(34)— C++ exit 函数

    当遇到 main 函数中的 return 语句时,C++ 程序将停止执行.但其他函数结束时,程序并不会停止.程序的控制将返回到函数调用之后的位置.然而,有时候会出现一些非常少见的情况,使得程序有必要在 ...

  7. C++ 笔记(30)— 友元函数与友元类

    我们知道类的私有成员只能在类的成员函数内部访问,如果想在别处访问对象的私有成员,只能通过类提供的接口(成员函数)间接地进行.这固然能够带来数据隐藏的好处,利于将来程序的扩充,但也会增加程序书写的麻烦. ...

  8. 浅显易懂 Makefile 入门 (07)— 其它函数(foreach 、if、call、origin )

    1. foreach 函数 foreach 函数定义如下: $(foreach <var>,<list>,<text>) 函数的功能是:把参数 <list&g ...

  9. 浅显易懂 Makefile 入门 (06)— 文件名操作函数(dir、notdir、suffix、basename、addsuffix、addperfix、join、wildcard)

    编写 Makefile 的时候,很多情况下需要对文件名进行操作.例如获取文件的路径,去除文件的路径,取出文件前缀或后缀等等. 注意:下面的每个函数的参数字符串都会被当作或是一个系列的文件名来看待. 1 ...

最新文章

  1. 支付宝 APP支付(证书)方式遇到的问题和解决办法
  2. windows 防火墙导致开发板tftpboot不能正常下载
  3. 利用pip3安装包只能在python2中调用
  4. php基础语法(文件加载和错误)
  5. Teams App设备的地理位置能力
  6. php调用twitter api
  7. UIWebView与JavaScript的交互
  8. ea 如何画bce备选架构图_GitHub - wongdean/rime-settings at 941ea079832ff211723bce1ce8e47344e527575e...
  9. r语言平均值显著性检验_R语言相关系数、显著性检验及可视化的尝试
  10. java算法一个岛屿上一个说真话 一个说假话_面试常问智力题40道(逻辑题)+ 参考答案...
  11. linux-raid (二) faulty 和 multipath
  12. 高德地图点击不同的标记,动态传入参数创建信息窗体
  13. 新至强Mesh架构解析之《西游大灌篮》
  14. 网站访问慢的排查思路
  15. 二、CString、CStringA 和 CStringW
  16. HDU1495 非常可乐【倒水问题+BFS】
  17. 计算机病毒手动查杀,电脑中毒了怎么办 如何手动彻底查杀病毒【解决方法】...
  18. 什么是研发效能?为什么要关注研发效能
  19. 快速扩张网站的十个妙招
  20. Sublime和iTerm中使用FiraCode编程连字等宽字体的配置

热门文章

  1. php音频系统设计,音频系统设计方案.doc
  2. C语言实现十进制小数转二进制
  3. 《数据库系统概论》第六章 关系数据理论
  4. 孙晓光:Rust 搜索引擎产品在知乎的应用
  5. 01 电商数仓(架构设计、用户行为数据生成脚本)
  6. [GEF循序渐进系列之二]GEF概述
  7. GDBpeda与pwngdb、gef等插件的正确切换方式
  8. 【FPGA学习】Quartus II中NCO与FFT ip核的仿真
  9. python中单引号和双引号区别
  10. 如何标题编号自动生成_【分享】实用word知识——章节标题与自动编号