Ritorno

(oggetto|vuoto)

Fonte

File: wp-includes/class-wp-admin-bar.php

finalprotectedfunction_bind(){if($this->bound){return;}// Add the root node.// Clear it first, just in case. Don't mess with The Root.$this->remove_node('root');$this->add_node(array('id'=>'root','group'=>false,));// Normalize nodes: define internal 'children' and 'type' properties.foreach($this->_get_nodes()as$node){$node->children=array();$node->type=($node->group)?'group':'item';unset($node->group);// The Root wants your orphans. No lonely items allowed.if(!$node->parent){$node->parent='root';}}foreach($this->_get_nodes()as$node){if('root'===$node->id){continue;}// Fetch the parent node. If it isn't registered, ignore the node.$parent=$this->_get_node($node->parent);if(!$parent){continue;}// Generate the group class (we distinguish between top level and other level groups).$group_class=('root'===$node->parent)?'ab-top-menu':'ab-submenu';if('group'===$node->type){if(empty($node->meta['class'])){$node->meta['class']=$group_class;}else{$node->meta['class'].=' '$group_class;}}// Items in items aren't allowed. Wrap nested items in 'default' groups.if('item'===$parent->type&&'item'===$node->type){$default_id=$parent->id'-default';$default=$this->_get_node($default_id);// The default group is added here to allow groups that are// added before standard menu items to render first.if(!$default){// Use _set_node because add_node can be overloaded.// Make sure to specify default settings for all properties.$this->_set_node(array('id'=>$default_id,'parent'=>$parent->id,'type'=>'group','children'=>array(),'meta'=>array('class'=>$group_class,),'title'=>false,'href'=>false,));$default=$this->_get_node($default_id);$parent->children[]=$default;}$parent=$default;// Groups in groups aren't allowed. Add a special 'container' node.// The container will invisibly wrap both groups.}elseif('group'===$parent->type&&'group'===$node->type){$container_id=$parent->id'-container';$container=$this->_get_node($container_id);// We need to create a container for this group, life is sad.if(!$container){// Use _set_node because add_node can be overloaded.// Make sure to specify default settings for all properties.$this->_set_node(array('id'=>$container_id,'type'=>'container','children'=>array($parent),'parent'=>false,'title'=>false,'href'=>false,'meta'=>array(),));$container=$this->_get_node($container_id);// Link the container node if a grandparent node exists.$grandparent=$this->_get_node($parent->parent);if($grandparent){$container->parent=$grandparent->id;$index=array_search($parent,$grandparent->children,true);if(false===$index){$grandparent->children[]=$container;}else{array_splice($grandparent->children,$index,1,array($container));}}$parent->parent=$container->id;}$parent=$container;}// Update the parent ID (it might have changed).$node->parent=$parent->id;// Add the node to the tree.$parent->children[]=$node;}$root=$this->_get_node('root');$this->bound=true;return$root;}

Correlato

Utilizzi

Usi Descrizione
wp-includes/class-wp-admin-bar.php: WP_Admin_Bar::remove_node()

Rimuove un nodo.

wp-includes/class-wp-admin-bar.php: WP_Admin_Bar::add_node()

Aggiunge un nodo al menu.

wp-includes/class-wp-admin-bar.php: WP_Admin_Bar::_get_nodes()
wp-includes/class-wp-admin-bar.php: WP_Admin_Bar::_get_node()
wp-includes/class-wp-admin-bar.php: WP_Admin_Bar::_set_node()

Utilizzato da

Usato da Descrizione
wp-includes/class-wp-admin-bar.php: WP_Admin_Bar::render()