一种简单的方法是在插件中定义可以钩住的自定义钩子。内置挂钩系统允许您创建自己的挂钩,然后像普通Wordpress挂钩一样绑定到挂钩上。这个Wordpress Codex 有关于do\\u action函数以及如何使用它创建自定义挂钩的很好的示例和说明。插件和主题开发人员严重忽视了Wordpress中的一个功能。
我坚信hooks系统是开发其他插件可以扩展的插件所需的全部,但正如我所说的,90%的Wordpress开发人员都严重忽视了这一点。
See below for an example (taken from the Wordpress Codex link provided):
<?php
# ======= Somewhere in a (mu-)plugin, theme or the core ======= #
/**
* You can have as many arguments as you want,
* but your callback function and the add_action call need to agree in number of arguments.
* Note: `add_action` above has 2 and \'i_am_hook\' accepts 2.
* You will find action hooks like these in a lot of themes & plugins and in many place @core
* @see: http://codex.wordpress.org/Plugin_API/Action_Reference
*/
// Define the arguments for the action hook
$a = array(
\'eye patch\' => \'yes\'
,\'parrot\' => true
,\'wooden leg\' => (int) 1
);
$b = \'And hook said: "I ate ice cream with peter pan."\';
// Defines the action hook named \'i_am_hook\'
do_action( \'i_am_hook\', $a, $b );
# ======= inside for eg. your functions.php file ======= #
/**
* Define callback function
* Inside this function you can do whatever you can imagine
* with the variables that are loaded in the do_action() call above.
*/
function who_is_hook( $a, $b )
{
echo \'<code>\';
print_r( $a ); // `print_r` the array data inside the 1st argument
echo \'</code>\';
echo \'<br />\'.$b; // echo linebreak and value of 2nd argument
}
// then add it to the action hook, matching the defined number (2) of arguments in do_action
// see [http://codex.wordpress.org/Function_Reference/add_action] in the Codex
// add_action( $tag, $function_to_add, $priority, $accepted_args );
add_action( \'i_am_hook\', \'who_is_hook\', 10, 2 );
# ======= output that you see in the browser ======= #
Array (
[\'eye patch\'] => \'yes\'
[\'parrot\'] => true
[\'wooden leg\'] => 1
)
And hook said: "I ate ice cream with peter pan."