Повний приклад
Швидкий (mu-) плагін, наприклад:
<?php
/** Plugin Name: Add Admin Bar Icon */
add_action( 'admin_bar_menu', function( \WP_Admin_Bar $bar )
{
$bar->add_menu( array(
'id' => 'wpse',
'parent' => null,
'group' => null,
'title' => __( 'Example', 'some-textdomain' ),
'href' => get_edit_profile_url( get_current_user_id() ),
'meta' => array(
'target' => '_self',
'title' => __( 'Hello', 'some-textdomain' ),
'html' => '<p>Hello</p>',
'class' => 'wpse--item',
'rel' => 'friend',
'onclick' => "alert('Hello');",
'tabindex' => PHP_INT_MAX,
),
) );
} );
Що робить наступний HTML в якості першого елемента (а отже, також робить наш адмін-бар непотрібним, але це не суть цього прикладу):
<li id="wp-admin-bar-wpse" class="wpse--item">
<a class="ab-item" tabindex="9223372036854775807" href="http://astro.dev/wp-admin/profile.php" onclick="alert(\'Hello\');" target="_self" title="Hello" rel="friend">Example</a>
<p>Hello</p>
</li>
Тепер, коли ми отримали базу, ми можемо подбати про ...
Додавання значків
Сумна новина: Не існує простого способу це зробити. Принаймні не без додавання власної таблиці стилів. Як ви можете прочитати (у коді), відбуваються деякі речі: я заздалегідь створив HTML, необхідний для загортання Dashicon перед фактичним елементом. Потім я додав дуже високе ціле як останнє число до дії - саме це визначає позицію елемента на панелі адміністратора.
<?php
/** Plugin Name: Add Admin Bar Icon */
add_action( 'admin_bar_menu', function( \WP_Admin_Bar $bar )
{
$bar->add_menu( array(
'id' => 'wpse',
'title' => '<span class="ab-icon"></span>'.__( 'Example', 'some-textdomain' ),
'href' => get_edit_profile_url( get_current_user_id() ),
'meta' => array(
'target' => '_self',
'title' => __( 'Ahoi!', 'some-textdomain' ),
'html' => '<!-- Custom HTML that goes below the item -->',
),
) );
}, 210 ); // <-- THIS INTEGER DECIDES WHERE THE ITEM GETS ADDED (Low = left, High = right)
add_action( 'wp_enqueue_scripts', function()
{
wp_enqueue_style( /* register your stylesheet */ );
}
Нарешті, вам потрібно буде додати деякі правила CSS у свій власний таблицю стилів. Єдина рухома частина - це wpse
в #/id
. Решта є постійним і рівним для всіх елементів / вузлів панелі адміністратора. Вам також може знадобитися відрегулювати top
положення, щоб відповідати Dashicon. Просто виберіть Dashicon на своєму сайті та додайте fXXX
код у CSS нижче.
#wpadminbar #wp-admin-bar-wpse .ab-icon:before {
content: '\f306';
top: 3px;
}