类似于生成管理菜单/子菜单的数组:
global $menu;
foreach ( $menu as $group => $item ) {
echo \'<pre>\'; print_r( $item ); echo \'</pre>\';
}
如何获取工具栏中所有可用菜单项的数组?我试着用
global $wp_admin_bar
变量,但这似乎不是正确的。
我之所以要生成这个数组,是为了在我的插件中使用它来提供一个选项,选择要从工具栏隐藏哪些项目,允许用户自定义其设置。现在,我手动创建了一个名为$toolbar
要选择要隐藏自己的项目,请执行以下操作:
global $wp_admin_bar;
$toolbar = array(
\'wp-logo\', // WordPress logo
\'comments\', // Comments
\'new-post\', // New > Post
\'search\' // Search
);
foreach ( $toolbar as $item ) {
$wp_admin_bar -> remove_menu( $item );
}
更新[2016-09-16]在我的插件设置页面中,我可以使用以下内容获取整个列表:
global $wp_admin_bar;
echo \'<pre>\'; print_r( $wp_admin_bar ); echo \'</pre>\';
粘贴到此处太长,因此您可以在此查看整个列表
Pastebin link. 然而,下面是它如何开始的一个片段。如何获取中的所有值
[id] =>
和/或
[parent] =>
? 看起来我需要经历几个层次的
foreach
?
WP_Admin_Bar Object (
[nodes:WP_Admin_Bar:private] => Array (
[user-actions] => stdClass Object (
[id] => user-actions
[title] =>
[parent] => my-account
[href] =>
[meta] => Array (
[class] => ab-submenu
)
[children] => Array (
[0] => stdClass Object (
[id] => user-info
[title] => Name
[parent] => user-actions
[href] => http://example.com/wp-admin/profile.php
[meta] => Array (
[tabindex] => -1
)
[children] => Array (
)
[type] => item
)
[1] => stdClass Object (
[id] => edit-profile
[title] => Edit My Profile
[parent] => user-actions
[href] => http://example.com/wp-admin/profile.php
[meta] => Array (
)
[children] => Array (
)
[type] => item
)
and so on...
SO网友:fuxia
加入行动admin_bar_menu
, 并使用该方法获取菜单项get_nodes()
, 由于项目列表是私有的,无法直接访问:
add_action( \'admin_bar_menu\', function( \\WP_Admin_Bar $wp_admin_bar ) {
$items = $wp_admin_bar->get_nodes();
if ( ! $items )
return;
print \'<pre>\';
foreach ( $items as $id => $item )
{
print "$id: " . print_r( $item, TRUE ) . "\\n";
}
print \'</pre>\';
}, PHP_INT_MAX );