WordPress Admin Bar Item hinzufügen (inkl. Icon)

Hier erfährst du, wie du mit wenigen Zeilen Code eigene Items in die WordPress Admin Bar hinzufügen und nach deinen Vorstellungen anpassen kannst.

Um einen neuen Link in diese WordPress Toolbar aufzunehmen sind nur wenige Zeilen Code notwendig. Außerdem kann man ganze Menüs inkl. Submenüs und eigenen Icons erstellen. Damit kannst du beispielsweise deine eigenen WordPress Plugins verbessern.

Item in WordPress Admin Bar hinzufügen

Das minimale Item in der Admin Bar besitzt nur eine ID und einen Titel. Man erhält folgendes Ergebnis:

Minimales Item der WordPress Admin Menu Bar
Minimales Item der WordPress Admin Menu Bar

Und hier der Code dazu. Dieser muss einfach in die functions.php deines Themes eingefügt werden:

add_action('admin_bar_menu', 'add_custom_toolbar', 100);
function add_custom_toolbar($admin_bar) {
	$admin_bar->add_menu(array(
		'id'    => 'your-custom-item',
		'title' => 'Your custom item'
	));
}

Das Attribut id darf nur einmal vergeben sein.

Um das Item zu verlinken fügt man noch das href Attribut hinzu. Hier wird die Datei custom_page.php des WordPress Backend verlinkt. Du kannst aber auch jeden anderen Link hinterlegen.

add_action('admin_bar_menu', 'add_custom_toolbar', 100);
function add_custom_toolbar($admin_bar) {
	$admin_bar->add_menu(array(
		'id'    => 'your-custom-item',
		'title' => 'Your custom item'
		'href'  => esc_url(admin_url('custom_page.php')),
	));
}

➜ Dokumentation WP_Admin_Bar::add_menu()

Meta Attribute

Über verschiedene Meta Attribute lassen sich weitere Optionen setzen. Dazu fügt man das markierte Subarray ein.

add_action('admin_bar_menu', 'add_custom_toolbar', 100);
function add_custom_toolbar($admin_bar) {
	$admin_bar->add_menu(array(
		'id'    => 'your-custom-item',
		'title' => 'Your custom item',
		'href'  => '#',
		'meta'  => array(
			'title' => __('Your custom item'),
			'target' => '_blank',
			'class' => 'custom_class'
		),
	));
}

Mit diesen Einstellungen wird der Link in einem neuen Tab geöffnet, ein Hover Titel wird gesetzt und die CSS Klasse custom_class für eigenes Styling gesetzt.

Alle Meta-Attribute mit Beschreibung findest Du in der Dokumentation zu WP_Admin_Bar::add_menu().

Um ein Submenü zu erstellen, fügt man einfach ein weiteres Menü über add_menu() nach gleichem Schema hinzu.

WordPress Admin Bar Item mit Icon
WordPress Admin Bar Sub Menu

Wichtig ist, dass die ID in Zeile 4 mit dem Attribut parent in Zeile 16 übereinstimmt.

add_action('admin_bar_menu', 'add_custom_toolbar', 100);
function add_custom_toolbar($admin_bar) {
	$admin_bar->add_menu(array(
		'id'    => 'your-custom-item',
		'title' => 'My custom item',
		'href'  => esc_url(admin_url('custom_page.php')),
		'meta'  => array(
			'title' => __('My custom item'),
			'target' => '_blank',
			'class' => 'your_custom_class'
		),
	));

	$admin_bar->add_menu(array(
		'id'    => 'your-custom-sub-menu',
		'parent' => 'your-custom-item',
		'title' => 'Custom Sub Menu',
		'href'  => esc_url(admin_url('custom_subpage.php')),
		'meta'  => array(
			'title' => __('Custom Sub Menu'),
			'target' => '_blank',
			'class' => 'your_custom_class'
		),
	));
}

Sub-Submenü hinzufügen

WordPress Toolbar Sub Sub Menu
WordPress Toolbar Sub Sub Menu

Um ein solches Sub Sub Menu hinzuzufügen wiederholt man das Einfügen eines weiteren Menüs einfach nochmal. Wichtig ist hier auch wieder, dass das parent Attribut des Sub Sub Menüs mit der ID des Sub Menüs übereinstimmt.

add_action('admin_bar_menu', 'add_custom_toolbar', 100);
function add_custom_toolbar($admin_bar) {
	$admin_bar->add_menu(array(
		'id'    => 'your-custom-item',
		'title' => 'My custom item',
		'href'  => esc_url(admin_url('custom_page.php')),
		'meta'  => array(
			'title' => __('My custom item'),
			'target' => '_blank',
			'class' => 'your_custom_class'
		),
	));

	$admin_bar->add_menu(array(
		'id'    => 'your-custom-sub-menu',
		'parent' => 'your-custom-item',
		'title' => 'Custom Sub Menu',
		'href'  => esc_url(admin_url('custom_subpage.php')),
		'meta'  => array(
			'title' => __('Custom Sub Menu'),
			'target' => '_blank',
			'class' => 'your_custom_class'
		),
	));

	$admin_bar->add_menu(array(
		'id'    => 'your-custom-sub-sub-menu',
		'parent' => 'your-custom-sub-menu',
		'title' => 'Custom Sub Sub Menu',
		'href'  => esc_url(admin_url('custom_subsubpage.php')),
		'meta'  => array(
			'title' => __('Custom Sub Sub Menu'),
		),
	));
}

WordPress Admin Bar Icon hinzufügen

Icons können die Admin Bar Items noch etwas übersichtlicher und schöner machen.

WordPress Admin Bar Item mit Icon
WordPress Admin Bar Item mit Icon

Dazu fügt man noch ein <span>-Attribut in den Titel ein:

<span class="ab-icon dashicons dashicons-admin-tools" style="top:3px"></span>

Die Klasse .dashicons-admin-tools kannst du durch ein Dashicon deiner Wahl ersetzen.

➜ Alle WordPress Dashicons

Eingesetzt sieht das Icon im Code wie folgt aus:

add_action('admin_bar_menu', 'add_custom_toolbar', 100);
function add_custom_toolbar($admin_bar) {
	$admin_bar->add_menu(array(
		'id'    => 'your-custom-item',
		'title' => '<span class="ab-icon dashicons dashicons-admin-tools" style="top:3px"></span>My custom item',
		'href'  => esc_url(admin_url('custom_page.php')),
		'meta'  => array(
			'title' => __('My custom item'),
			'target' => '_blank',
			'class' => 'your_custom_class'
		),
	));

	$admin_bar->add_menu(array(
		'id'    => 'your-custom-sub-menu',
		'parent' => 'your-custom-item',
		'title' => 'Custom Sub Menu',
		'href'  => esc_url(admin_url('custom_subpage.php')),
		'meta'  => array(
			'title' => __('Custom Sub Menu'),
			'target' => '_blank',
			'class' => 'your_custom_class'
		),
	));
}

Wenn das Admin Bar Menü Item nur auf bestimmten Seiten angezeigt werden soll, ist das natürlich auch möglich. Das kannst du durch eine einfache if Abfrage realisieren.

Nur auf Beitragsseiten anzeigen

add_action('admin_bar_menu', 'add_custom_toolbar', 100);
function add_custom_toolbar($admin_bar) {
	if (is_single()) {
		// $admin_bar->add_menu(...)
	}
}

Nur bei bestimmten IDs anzeigen

Hier ersetzt du einfach die ID in der markierten Zeile mit der ID deiner Seite.

add_action('admin_bar_menu', 'add_custom_toolbar', 100);
function add_custom_toolbar($admin_bar) {
	if (get_the_id() === 42) {
		// $admin_bar->add_menu(...)
	}
}

Nur auf Archivseiten anzeigen

add_action('admin_bar_menu', 'add_custom_toolbar', 100);
function add_custom_toolbar($admin_bar) {
	if (is_archive()) {
		// $admin_bar->add_menu(...)
	}
}

Nur bei bestimmtem Custom Post Type anzeigen

Du kannst einfach your_custom_post_type mit dem Slug des gewünschten Post Types ersetzen.

add_action('admin_bar_menu', 'add_custom_toolbar', 100);
function add_custom_toolbar($admin_bar) {
	if (get_post_type() == 'your_custom_post_type') {
		// $admin_bar->add_menu(...)
	}
}
Ähnliche Beiträge
Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

bold italic underline strikeThrough
insertOrderedList insertUnorderedList outdent indent
removeFormat
createLink unlink
code

Das könnte dich auch interessieren