The admin_bar_menu WordPress PHP action is used to add, remove, or manipulate items in the admin bar.
Usage
add_action('admin_bar_menu', 'my_custom_function', 10, 1); function my_custom_function($wp_admin_bar) { // your custom code here }
Parameters
$wp_admin_bar
(WP_Admin_Bar) – The WP_Admin_Bar instance, passed by reference.
More information
See WordPress Developer Resources: admin_bar_menu
Examples
Add a custom link to the admin bar
Add a link to the admin bar that directs to the custom settings page.
function my_custom_admin_bar_link($wp_admin_bar) { $args = array( 'id' => 'my_custom_link', 'title' => 'Custom Settings', 'href' => admin_url('options-general.php?page=my_custom_settings'), ); $wp_admin_bar->add_node($args); } add_action('admin_bar_menu', 'my_custom_admin_bar_link', 100);
Remove the WordPress logo from the admin bar
Remove the WordPress logo from the admin bar.
function my_remove_wp_logo($wp_admin_bar) { $wp_admin_bar->remove_node('wp-logo'); } add_action('admin_bar_menu', 'my_remove_wp_logo', 999);
Add a custom admin bar group
Add a custom group with multiple links in the admin bar.
function my_custom_admin_bar_group($wp_admin_bar) { $wp_admin_bar->add_group(array( 'id' => 'my_custom_group', 'parent' => 'top-secondary', )); $wp_admin_bar->add_node(array( 'id' => 'my_custom_link_1', 'title' => 'Link 1', 'href' => '#', 'parent' => 'my_custom_group', )); $wp_admin_bar->add_node(array( 'id' => 'my_custom_link_2', 'title' => 'Link 2', 'href' => '#', 'parent' => 'my_custom_group', )); } add_action('admin_bar_menu', 'my_custom_admin_bar_group', 100);
Modify the existing “New” dropdown menu in the admin bar
Add a custom post type link to the “New” dropdown menu.
function my_custom_new_content($wp_admin_bar) { $wp_admin_bar->add_node(array( 'id' => 'new-custom-post-type', 'title' => 'Custom Post Type', 'href' => admin_url('post-new.php?post_type=custom_post_type'), 'parent' => 'new-content', )); } add_action('admin_bar_menu', 'my_custom_new_content', 50);
Change the text of an existing admin bar item
Change the text of the “Howdy” greeting in the admin bar.
function my_custom_greeting($wp_admin_bar) { $my_account = $wp_admin_bar->get_node('my-account'); $new_title = str_replace('Howdy,', 'Welcome,', $my_account->title); $wp_admin_bar->add_node(array( 'id' => 'my-account', 'title' => $new_title, )); } add_action('admin_bar_menu', 'my_custom_greeting', 999);