我正在编写一个小插件,以从后端删除非管理员用户的某些菜单项,并发现除非我在代码中指定了优先级,否则插件不会执行任何操作:
add_action('admin_bar_menu', 'remove_toolbar_items', 999);
没有999
,代码不会删除我remove_toolbar_items
函数中的项,并且它可以很好地工作:
function remove_toolbar_items( $wp_admin_bar ) {
if ( !current_user_can( 'manage_options' ) ) {
$wp_admin_bar->remove_node('new-post');
$wp_admin_bar->remove_node('comments');
}
}
优先级参数状态的文档:
用于指定执行与特定操作关联的功能的顺序。较小的数字表示较早的执行,并且具有相同优先级的功能按照将它们添加到操作中的顺序执行。默认值:10
但是,我找不到任何可以解释您如何确定要使用的优先级的内容。您如何确定何时使用优先级以及使用什么优先级?如果我没有玩弄priority参数的话,我觉得我可能已经花了好几个小时了。
另外,我看到默认优先级为10,但是优先级值的范围是否已知?