Adding elements (links) to the admin bar (toolbar)

To add links, use the WP_Admin_Bar::add_menu() method, also known as WP_Admin_Bar::add_node(). The addition should be done on the admin_bar_menu hook.

You can add both top-level links and child links. For example, let's add a link and a child link to the toolbar:

// Adds a link to the admin bar
add_action( 'admin_bar_menu', 'my_admin_bar_menu', 30 );
function my_admin_bar_menu( $wp_admin_bar ) {
	$wp_admin_bar->add_menu( array(
		'id'    => 'menu_id',
		'title' => 'External Link',
		'href'  => 'http://example.com',
	) );

	// child link
	$wp_admin_bar->add_menu( array(
		'parent' => 'menu_id', // id parameter from the first link
		'id'     => 'some_id', // your id to be able to add child links
		'title'  => 'Child Link',
		'href'   => 'http://example.com/subpage',
	) );
}

As a result, we will get:

To change the position of the entire block of links, (put it before or after a certain block), change the number 30 — the larger the number, the closer to the end.

Another example: a child link in the site menu to the plugins page

// child link in the site menu to the plugins page
if( ! is_admin() ){
	add_action( 'admin_bar_menu', function ( $wp_admin_bar ) {
		$wp_admin_bar->add_menu( array(
			'parent' => 'site-name', // id of the parent element
			'id'     => 'plugins_link', // your id to be able to add child links
			'title'  => 'Plugins',
			'href'   => admin_url('plugins.php'),
		) );
	}, 100 );
}

See the list of all possible parameters in WP_Admin_Bar::add_menu().