优先级
所有挂钩和;过滤器具有优先级。这些用于排序连接到挂钩的函数。默认情况下,优先级为
10
.
由于默认值为10,您的过滤器/操作很可能过早挂起,因此不会影响实际输出。
Edit:
<想象插件将其引导挂接到
\'admin_init\'
钩子添加需要访问权限的内容。在引导程序中,它将某些内容挂接到(虚构的)
\'fantastic_hook\'
.假设您将插件的某个扩展挂接到
\'after_theme_setup\'
钩在这里,您向(虚构的)添加了一些函数
\'fantastic_hook\'
我也是因此
print_r( $GLOBALS[\'wp_filter\'][\'fantastic_hook\'] );
将如下所示:
[10] Array => [\'fantastic_hook\']
(
Array => [\'your_custom_extension\']
Array => [\'the_plugin_bootstrap\']
)
作为您的分机
and 引导程序以优先级同时运行
10
. 但您的先添加,因此将首先运行。问题来了。。。
关于菜单项
管理菜单的工作原理非常相似:您有一个优先级(子)数组索引),它关心菜单项的排序和放置。
// Example for your functions.php:
function dump_filters()
{
$output = \'\';
foreach ( array( $GLOBALS[\'menu\'], $GLOBALS[\'submenu\'] ) as $item )
$output .= var_export( $item, false );
echo "<pre>{$output}</pre>";
}
add_action( \'adminmenu\', \'dump_filters\', 999 );
注:我写了一篇
post 关于菜单顺序,在那里你可以看到
reorder 阅读菜单,了解菜单的幕后内容及其局限性。