WordPress 函数do_action()详解和应用举例
1、do_action()函数声明(定义)作用
do_action()函数是WordPress的内部函数,作用是创建一个行为钩子,它没有返回值,单纯的就是在特定的地方执行插件或者主题开发者挂载的函数,一般存在于某个特殊的节点或者事件上(比如开始加载主题模板的时候或者发布一篇文章的时候),该函数让wordpress变得更加强大,扩展性更加好。例如wp_head()函数中只有一句代码就是:do_action(
‘wp_head’ ),他的意思就是执行挂载到wp_head这个动作钩子上的所有函数。
do_action($tag, $arg);
//$tag是必须的,为我们创建的动作名称;
//$arg 为我们要执行的"动作";
2、do_action()参数
这个函数可以包含两个或者多个变量,但是第一个$tag变量(动作钩子)是必须的,而且这个函数不会返回值。
$tag
(字符串)(必须)要执行的动作的名字。
$arg
(混合)(可选)额外的参数,会被传到调用的函数里,可以添加无限个,比如保存文章的时候触发 save_post 动作,就可以把保存的文章的 id 穿进去,让回调函数根据文章 id 进行操作。
3、do_action()函数应用示例
//先定义echo_meta,输出内容
function echo_meta(){echo '<meta name="description" content="511遇见-不一样的遇见" />';
//然后将echo_meta挂载到wp_meta上
add_action('wp_meta','echo_meta');}
//然后我们去执行wp_meta
function wp_meta() {do_action('wp_meta');}
我们再看一个例子:
//自定义回调函数zidingyihanshu(),该函数有两个参数
function zidingyihanshu( $canshu1, $canshu2 )
{echo '<code>';
print_r( $canshu1 ); // 输出参数1
echo '</code>';
echo '<br />'.$canshu2; // 输出参数2
}
//把这个函数添加到woshigouzi这个钩子上,让他接受2个参数
add_action( 'woshigouzi', 'zidingyihanshu', 10, 2 );
// 为钩子定义参数值
$canshu1 = array(
'网站名称' => '511遇见网络:',
'这是真的吗?' => true,
'我多大了' => (int) 20 );
$canshu2 = '511遇见网络:"do_action函数应用实例"';
//执行挂载到woshigouzi上的函数
do_action( 'woshigouzi', $canshu1, $canshu2 );
下面我们再解释一下这个流程:
1. 我们先自定义了一个含有两个参数的回调函数;
2.紧着接我们通过add_action()这个函数把这个回调函数挂载到了woshigouzi这个动作钩子上,设置动作执行的优先级为10,并让这个回调函数可以接受两个参数;
3. 我们为这两个参数赋值;
4. 通过do_action()函数来执行挂在到woshigouzi这个动作钩子上面的函数,并把两个参数传给挂载到woshigouzi上面的回调函数;这个回调函数就会把这两个参数输出了;
一句话理解do_action()函数就是:执行挂载到钩子上的动作(回调函数实现的)。
WordPress 函数do_action()详解和应用举例的更多相关文章
- WordPress函数wp_page_menu详解
说明 该标签显示带有链接的WordPress页面列表,并且可以选择将 Home(主页)自动显示为列表中的一员.该标签是自定义侧边栏和标题栏的好帮手,同时还可以用在其它模板中. WordPress教程 ...
- 自写函数VB6 STUFF函数 和 VB.net 2010 STUFF函数 详解
'*************************************************************************'**模 块 名:自写函数VB6 STUFF函数 和 ...
- SQL Server数据库ROW_NUMBER()函数使用详解
SQL Server数据库ROW_NUMBER()函数使用详解 摘自:http://database.51cto.com/art/201108/283399.htm SQL Server数据库ROW_ ...
- PHP函数篇详解十进制、二进制、八进制和十六进制转换函数说明
PHP函数篇详解十进制.二进制.八进制和十六进制转换函数说明 作者: 字体:[增加 减小] 类型:转载 中文字符编码研究系列第一期,PHP函数篇详解十进制.二进制.八进制和十六进制互相转换函数说明 ...
- PHP date函数参数详解
PHP date函数参数详解 作者: 字体:[增加 减小] 类型:转载 time()在PHP中是得到一个数字,这个数字表示从1970-01-01到现在共走了多少秒,很奇怪吧 不过这样方便计 ...
- SQL中CONVERT()函数用法详解
SQL中CONVERT函数格式: CONVERT(data_type,expression[,style]) 参数说明: expression 是任何有效的 Microsoft® SQL Server ...
- php中setcookie函数用法详解(转)
php中setcookie函数用法详解: php手册中对setcookie函数讲解的不是很清楚,下面是我做的一些整理,欢迎提出意见. 语法: bool set ...
- eval()函数用法详解
eval()函数用法详解:此函数可能使用的频率并不是太高,但是在某些情况下具有很大的作用,下面就介绍一下eval()函数的用法.语法结构: eval(str) 此函数可以接受一个字符串str作为参数, ...
- Python学习入门教程,字符串函数扩充详解
因有用户反映,在基础文章对字符串函数的讲解太过少,故写一篇文章详细讲解一下常用字符串函数.本文章是对:程序员带你十天快速入门Python,玩转电脑软件开发(三)中字符串函数的详解与扩充. 如果您想学习 ...
随机推荐
- virtualbox-centos扩容
virtualbox-centos扩容 版本信息 virtualbox:版本 6.1.4 r136177 (Qt5.6.2) centos:CentOS Linux release 7.7.1908 ...
- 将MacOS Catalina 降级为 Mojave
1.下载Mojave https://apps.apple.com/cn/app/macos-mojave/id1398502828?ls=1&mt=12 2.更改U盘格式和名称 3.制作U盘 ...
- PAT-1153(Decode Registration Card of PAT)+unordered_map的使用+vector的使用+sort条件排序的使用
Decode Registration Card of PAT PAT-1153 这里需要注意题目的规模,并不需要一开始就存储好所有的满足题意的信息 这里必须使用unordered_map否则会超时 ...
- 01----python入门----python安装与初识
----python入门----python安装与初识 python是一门编程语言,作为学习python的开始,需要事先搞明白:编程的目的是什么?什么是编程语言?什么是编程? 这是一个很好的开头!但是 ...
- Java split 根据指定字符串分隔成list数组的用法
String str="Java string split test"; String[] strarray=str.split(" ");//得到一 ...
- 第三方API接口测试问题反馈文档
大家在给甲方做大型项目的时候,有时候参与的厂商比较多,而公司负责的部分又需要第三方厂商提供接口支持. 例如我们做医疗行业的,给医院提供医保控费系统服务的,就需要HIS厂商提供接口给我们采集数据.有时候 ...
- Django常见问题集锦
1. 解决pycharm终端/cmd运行python脚本报错"ImportError/ModuleNotFoundError:No Module named ..." 问题 项目结 ...
- 关于深度学习配置的一些tips
建立博客的第一天,将以前记录的一些东西存档下,方便查看. 1安装anaconda 2pycharm破解 配置环境变量3虚拟环境推荐是python3.5或3.6版本 4.安装numpy tensorfl ...
- 微信小程序 | app.json配置属性
app.json 文件用来对微信小程序进行全局配置,决定页面文件的路径.窗口表现.设置网络超时时间.设置多 tab 等. widows: 用于设置小程序的状态栏.导航条.标题.窗口背景色. navig ...
- irace package -- 参数调优神器
目录 1. irace 是什么 2. 安装 irace 3. irace 的运行机制 4. irace 的配置环境 4.1. parameters 4.2. target algorithm runn ...