WP_Admin_Bar::get_nodes(): array|void

Return

array|void

Source

final public function get_nodes() {
	$nodes = $this->_get_nodes();
	if ( ! $nodes ) {
		return;
	}

	foreach ( $nodes as &$node ) {
		$node = clone $node;
	}
	return $nodes;
}

Changelog

VersionDescription
3.3.0Introduced.

User Contributed Notes

  1. Skip to note 3 content

    Add a Span Before the Title of All Toolbar Items

    This example adds an empty span with the class “my-class” before every Toolbar item’s title. Put this in your theme’s functions.php file.

    /**
     * Prefix top-level toolbar items with a span container.
     *
     * @param WP_Admin_Bar $wp_admin_bar Toolbar instance.
     */
    function wpdocs_all_toolbar_nodes( $wp_admin_bar ) {
    
    	$all_toolbar_nodes = $wp_admin_bar->get_nodes();
    
    	foreach ( $all_toolbar_nodes as $node ) {
    
    		// use the same node's properties
    		$args = $node;
    
    		// put a span before the title
    		$args->title = '<span class="my-class"></span>' . $node->title;
    
    		// update the Toolbar node
    		$wp_admin_bar->add_node( $args );
    	}
    
    }
    add_action( 'admin_bar_menu', 'wpdocs_all_toolbar_nodes', 999 );
  2. Skip to note 4 content

    Display all Node ID’s of the Current Page in the Toolbar

    This example will add all node ID’s on the current page to a top-level Toolbar item called “Node ID’s”. This is for developers who want to find out what the node ID is for a specific node. Put this in your theme’s functions.php file.

    // use 'wp_before_admin_bar_render' hook to also get nodes produced by plugins.
    add_action( 'wp_before_admin_bar_render', 'add_all_node_ids_to_toolbar' );
    
    function add_all_node_ids_to_toolbar() {
    
    	global $wp_admin_bar;
    	$all_toolbar_nodes = $wp_admin_bar->get_nodes();
    
    	if ( $all_toolbar_nodes ) {
    
    		// add a top-level Toolbar item called "Node Id's" to the Toolbar
    		$args = array(
    			'id'    => 'node_ids',
    			'title' => 'Node ID\'s'
    		);
    		$wp_admin_bar->add_node( $args );
    
    		// add all current parent node id's to the top-level node.
    		foreach ( $all_toolbar_nodes as $node  ) {
    			if ( isset($node->parent) && $node->parent ) {
    
    				$args = array(
    					'id'     => 'node_id_'.$node->id, // prefix id with "node_id_" to make it a unique id
    					'title'  => $node->id,
    					'parent' => 'node_ids'
    					// 'href' => $node->href,
    				);
    				// add parent node to node "node_ids"
    				$wp_admin_bar->add_node($args);
    			}
    		}
    
    		// add all current Toolbar items to their parent node or to the top-level node
    		foreach ( $all_toolbar_nodes as $node ) {
    
    			$args = array(
    				'id'      => 'node_id_'.$node->id, // prefix id with "node_id_" to make it a unique id
    				'title'   => $node->id,
    				// 'href' => $node->href,
    			);
    
    			if ( isset($node->parent) && $node->parent ) {
    				$args['parent'] = 'node_id_'.$node->parent;
    			} else {
    				$args['parent'] = 'node_ids';
    			}
    
    			$wp_admin_bar->add_node($args);
    		}
    	}
    }

You must log in before being able to contribute a note or feedback.