Die WordPress-Menüs (primäre Navigation, Footer-Menü, etc.) werden normalerweise über eine grafische Oberfläche konfiguriert. Es gibt allerdings auch die Möglichkeit, Menüs per Code zu bearbeiten, bereinigen und zu ergänzen.
Alle Menüpunkte löschen
Folgender Code entfernt alle Menüpunkte aus einem bestehenden Menü. Lediglich die ID des Menüs (hier 12345
) muss angepasst werden:
$menu_id = 12345;
function sw_empty_menu($menu_id)
{
$items = wp_get_nav_menu_items($menu_id);
foreach ($items as $item) {
wp_delete_post($item->ID);
}
}
sw_empty_menu($menu_id);
Link zum Menü hinzufügen
Folgender Code fügt einen benutzerdefinierten Link (in diesem Fall zu example.com) hinzu:
$menu_id = 11;
$menu_item_id = 0;
$params = array(
'menu-item-type' => 'custom',
'menu-item-url' => 'https://example.com/',
'menu-item-title' => 'Link Title',
'menu-item-status' => 'publish'
);
wp_update_nav_menu_item($menu_id, $menu_item_id, $params);
Wenn die $menü_item_id
0 ist, dann wird ein neuer Menüpunkt hinzugefügt. Wird eine ID ungleich 0 angegeben, wird der entsprechende Menüpunkt aktualisiert.
Seite zum Menü hinzufügen
Wenn du eine bestehende WordPress-Seite zum Menü hinzufügen möchtest, kannst du folgenden Code nutzen:
$menu_id = 11;
$page_id = 22;
$menu_item_id = 0;
$params = array(
'menu-item-object-id' => $page_id,
'menu-item-object' => 'page',
'menu-item-status' => 'publish',
'menu-item-type' => 'post_type',
);
wp_update_nav_menu_item($menu_id, $menu_item_id, $params);
$page_id
muss dabei der ID der gewünschten Seite entsprechen und wie schon im ersten Code-Beispiel wird über $menu_item_id
gesteuert, ob ein neuer Menüpunkt hinzugefügt werden soll oder ein bestehender Punkt aktualisiert wird.