WordPress Menü mittels Code bearbeiten

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.

Schreibe einen Kommentar