自分のサイトへのリンクを管理バーに追加し、そのリンクを管理バーの一番左の項目にします。私はプラグイン関数でこれとのリンクを追加することができます:
$wp_admin_bar->add_menu( array(
'id' => 'my-link',
'title' => __('MySite'),
'href' => site_url()
) );
しかし、私はそれを管理バーの一番左のリンク、つまり左上隅にあるリンクにしたいのです。これを行う方法はありますか?
私が正しければ、これらはデフォルトの位置です:
私が使用しているものからの小さなコードの抜粋:add_action('admin_bar_menu', 'your_function_name', 10);
10
はそれを管理バーの一番左側に持ってくるべきです。
現時点ではWPバージョン3.8であり、それはまだ魅力のように機能します。
追加例:
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
私はチャールズの解決策を試みたが成功しなかった。管理バーのどちら側にコンテンツを追加するかを指定できることがわかりました。
を使う
add_action( 'admin_bar_menu,'yourfunctionname');
デフォルトのコンテンツの前に、新しいコンテンツを管理バーの左側に追加します。
を使う
add_action( 'wp_before_admin_bar_render', 'yourfunctionname' );
デフォルトのコンテンツの後に新しいコンテンツを管理バーの右側に追加します。
管理バーを完全に再編成したい場合はWP_Admin_Bar()
を使用する必要があります。
例:
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');