详解WordPress中添加和执行动作的函数使用方法
<p><strong>add_action()(添加动作)</strong><br>
add_action() 函数用来挂载一个函数到动作钩子上。</p>
<p>
用法</p>
<div>
<div>
<div id="highlighter_706691">
<div>
<span>?</span>
</div>
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td>
<div>
1</div>
</td>
<td>
<div>
<div>
<code>add_action( </code><code>$tag</code><code>, </code><code>$function_to_add</code><code>, </code><code>$priority</code><code>, </code><code>$accepted_args</code> <code>);</code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
<div id="codetool">
<div>
<textarea></textarea>
</div>
</div>
</div>
<p>
参数</p>
<p>
$hook</p>
<p>
(字符串)(必须)挂载函数的动作名称。</p>
<p>
默认值:None</p>
<p>
$function_to_add</p>
<p>
(回调函数)(必须)挂载的函数,直接填写字符串形式的函数名即可。</p>
<p>
默认值:None</p>
<p>
$priority</p>
<p>
(整数)(可选)动作执行的优先级,数值越小越先被执行。</p>
<p>
默认值:10</p>
<p>
$accepted_args</p>
<p>
(整数)(可选)回调函数接收几个参数。</p>
<p>
默认值:1</p>
<p>
返回值</p>
<p>
(布尔)始终返回 True.</p>
<p>
例子</p>
<p>
给 wp_head 动作挂载一个函数,在 head 标签打印输出一些东西。</p>
<div>
<div>
<div id="highlighter_49036">
<div>
<span>?</span>
</div>
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td>
<div>
1</div>
<div>
2</div>
<div>
3</div>
<div>
4</div>
</td>
<td>
<div>
<div>
<code>function</code> <code>Bing_wp_head_test_print(){</code>
</div>
<div>
<code> </code><code>echo</code> <code>'<meta name="viewport" content="width=device-width,initial-scale=1,maximum-scale=1,user-scalable=0" />'</code><code>;</code>
</div>
<div>
<code>}</code>
</div>
<div>
<code>add_action( </code><code>'wp_head'</code><code>, </code><code>'Bing_wp_head_test_print'</code> <code>);</code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
<div id="codetool">
<div>
<textarea></textarea>
</div>
</div>
</div>
<p>
其它</p>
<p>
该函数位于:wp-includes/plugin.php</p>
<p>
<strong>do_action()(执行动作)</strong><br>
do_action() 用来执行动作钩子,它和 apply_filters() 的区别在于没有返回值,单纯的就是在特定的地方执行插件或者主题开发者挂载的函数,一般存在于某个特殊的节点或者事件上(比如开始加载主题模板的时候或者发布一篇文章的时候)。</p>
<p>
用法</p>
<div>
<div>
<div id="highlighter_320351">
<div>
<span>?</span>
</div>
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td>
<div>
1</div>
</td>
<td>
<div>
<div>
<code>do_action( </code><code>$tag</code><code>, </code><code>$arg</code><code>... );</code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
<div id="codetool">
<div>
<textarea></textarea>
</div>
</div>
</div>
<p>
参数</p>
<p>
$tag</p>
<p>
(字符串)(必须)要执行的动作的名字。</p>
<p>
$arg</p>
<p>
(混合)(可选)额外的参数,会被传到调用的函数里,可以添加无限个,比如保存文章的时候触发 save_post 动作,就可以把保存的文章的 id 穿进去,让回调函数根据文章 id 进行操作。</p>
<p>
返回值</p>
<p>
None</p>
<p>
例子</p>
<div>
<div>
<div id="highlighter_346189">
<div>
<span>?</span>
</div>
<table border="0" cellpadding="0" cellspacing="0"><tbody><tr>
<td>
<div>
1</div>
<div>
2</div>
<div>
3</div>
<div>
4</div>
<div>
5</div>
</td>
<td>
<div>
<div>
<code>function</code> <code>func(){</code>
</div>
<div>
<code> </code><code>echo</code> <code>'测试'</code><code>;</code>
</div>
<div>
<code>}</code>
</div>
<div>
<code>add_action( </code><code>'test'</code><code>, </code><code>'func'</code> <code>);</code>
</div>
<div>
<code>do_action( </code><code>'test'</code> <code>);</code>
</div>
</div>
</td>
</tr></tbody></table>
</div>
</div>
<div id="codetool">
<div>
<textarea></textarea>
</div>
</div>
</div>
<p>
屏幕打印:</p>
<p>
测试</p>
<p>
更多参考类似的 apply_filters():http://www.endskin.com/apply_filters/</p>
<p>
其它</p>
<p>
此函数位于:wp-includes/plugin.php</p>
頁:
[1]