Je souhaite ajouter un lien vers mon site dans la barre d'administration et faire de ce lien l'élément le plus à gauche de la barre d'administration. Je peux ajouter un lien avec cela dans une fonction de plugin:
$wp_admin_bar->add_menu( array(
'id' => 'my-link',
'title' => __('MySite'),
'href' => site_url()
) );
Mais j’aimerais en faire le lien le plus à gauche dans la barre d’administration, c’est-à-dire tout en haut à gauche. Y a-t-il un moyen de faire cela?
Si je suis correct, voici les positions par défaut:
petit extrait de code de ce que j'utilise:add_action('admin_bar_menu', 'your_function_name', 10);
Le 10
devrait l'amener à l'extrême gauche de la barre d'administration.
Pour l'instant, nous sommes à WP version 3.8 et cela fonctionne toujours comme un charme.
Exemple ajouté:
function add_item($admin_bar) {
$args = array(
'id' => 'your-link', // Must be a unique name
'title' => 'Yoursite', // Label for this item
'href' =>__ ('your_site_url'),
'meta' => array(
'target'=> '_blank', // Opens the link with a new tab
'title' => __('Yoursite'), // Text will be shown on hovering
),
);
$admin_bar->add_menu( $args);
}
add_action('admin_bar_menu', 'add_item', 10); // 10 = Position on the admin bar
J'ai tenté la solution de Charles mais sans succès. J'ai cependant découvert que vous pouvez spécifier si le côté de la barre d'administration que votre contenu est ajouté est ajouté.
En utilisant
add_action( 'admin_bar_menu,'yourfunctionname');
ajoutera votre nouveau contenu à gauche de la barre d’administration, avant le contenu par défaut.
En utilisant
add_action( 'wp_before_admin_bar_render', 'yourfunctionname' );
ajoutera votre nouveau contenu à la droite de la barre d’administration après le contenu par défaut.
Si vous voulez réorganiser complètement la barre d’administration, vous devez utiliser WP_Admin_Bar()
.
Exemple:
function reorder_admin_bar() {
global $wp_admin_bar;
// The desired order of identifiers (items)
$IDs_sequence = array(
'wp-logo',
'site-name',
'new-content',
'edit'
);
// Get an array of all the toolbar items on the current
// page
$nodes = $wp_admin_bar->get_nodes();
// Perform recognized identifiers
foreach ( $IDs_sequence as $id ) {
if ( ! isset($nodes[$id]) ) continue;
// This will cause the identifier to act as the last
// menu item
$wp_admin_bar->remove_node($id);
$wp_admin_bar->add_node($nodes[$id]);
// Remove the identifier from the list of nodes
unset($nodes[$id]);
}
// Unknown identifiers will be moved to appear after known
// identifiers
foreach ( $nodes as $id => &$obj ) {
// There is no need to organize unknown children
// identifiers (sub items)
if ( ! empty($obj->parent) ) continue;
// This will cause the identifier to act as the last
// menu item
$wp_admin_bar->remove_node($id);
$wp_admin_bar->add_node($obj);
}
}
add_action( 'wp_before_admin_bar_render', 'reorder_admin_bar');