15%

15% auf alle Hosting-Dienste sparen

Teste deine Fähigkeiten und erhalte Rabatt auf jeden Hosting-Plan

Benutze den Code:

Skills
Anfangen
23.10.2024
3 +1

Die einfachsten Methoden zum Neuanordnen von Seiten in WordPress (alle Methoden erklärt)

Das Neuordnen von Seiten in WordPress steuert sowohl die strukturelle Hierarchie Ihrer Website als auch die Reihenfolge, in der Seiten in Navigationsmenüs, REST API-Antworten und theme-generierten Seitenlisten erscheinen. Standardmäßig weist WordPress jeder Seite einen menu_order-Wert von 0 zu, was bedeutet, dass Seiten in alphabetischer Reihenfolge dargestellt werden, sofern Sie diesen Wert nicht explizit überschreiben — entweder über die Dokumenteinstellungen des Block-Editors, ein dediziertes Plugin oder direkte Datenbankmanipulation.

Dieser Leitfaden behandelt jede praktische Methode zur Neuordnung von WordPress-Seiten, von dem schnellsten Drag-and-Drop-Plugin bis hin zu direkten menu_order SQL-Updates, einschließlich der genauen Szenarien, in denen jeder Ansatz geeignet ist und wo jeder lautlos versagt.

Warum die Seitenreihenfolge über die Navigation hinaus wichtig ist

Die meisten Tutorials behandeln die Neuordnung von Seiten als rein kosmetisches Anliegen. Das ist sie nicht. Die menu_order-Spalte in der wp_posts-Tabelle ist eine abfragbare Ganzzahl, die direkt beeinflusst:

  • WP_Query-Ergebnisse, wenn orderby=menu_order übergeben wird — verwendet von vielen Page-Builder-Templates und Theme-Schleifen
  • REST API-Endpunkt-Reihenfolge (/wp-json/wp/v2/pages?orderby=menu_order&order=asc), die von Headless-WordPress-Setups und mobilen Apps genutzt wird
  • Breadcrumb-Plugins (Yoast SEO, Rank Math), die die Hierarchie aus Eltern-Kind-Beziehungen kombiniert mit menu_order ableiten
  • Sitemap-Generierung — einige SEO-Plugins verwenden menu_order, um die Crawl-Reihenfolge von Seiten in sitemap.xml zu priorisieren
  • Programmatische Seitenbäume, die von wp_list_pages() mit sort_column=menu_order gerendert werden

Das Verständnis davon verhindert einen häufigen Fehler: Entwickler ordnen Seiten im Menü-Editor neu an, gehen davon aus, dass das Problem gelöst ist, und stellen dann fest, dass die Seitenschleife ihres Themes oder die Sitemap noch die alte alphabetische Reihenfolge widerspiegelt.

Methode 1: Simple Page Ordering Plugin (Empfohlen für die meisten Websites)

Simple Page Ordering von 10up ist die effizienteste Lösung für Websites mit bis zu mehreren hundert Seiten. Es greift in die Standard-WordPress-Admin-Listentabelle ein und macht jede Zeile ziehbar, wobei die aktualisierten menu_order-Werte bei jedem Drop-Ereignis über AJAX in die Datenbank zurückgeschrieben werden.

Installation

  1. Navigieren Sie in Ihrem WordPress-Dashboard zu Plugins > Neues Plugin hinzufügen.
  2. Suchen Sie nach Simple Page Ordering.
  3. Klicken Sie auf Jetzt installieren und dann auf Aktivieren.

Seiten neu anordnen

  1. Gehen Sie zu Seiten > Alle Seiten.
  2. Fahren Sie mit der Maus über eine beliebige Seitenzeile — ein Ziehgriff erscheint auf der linken Seite.
  3. Ziehen Sie die Zeilen in die gewünschte Reihenfolge.
  4. Loslassen — die Reihenfolge wird automatisch über AJAX gespeichert. Es ist keine Schaltfläche „Speichern” erforderlich.

Was dieses Plugin tatsächlich im Hintergrund tut

Jede Drag-and-Drop-Aktion sendet eine POST-Anfrage an wp-admin/admin-ajax.php mit der Aktion simple_page_ordering und einem serialisierten Array von Post-IDs in ihrer neuen Reihenfolge. WordPress iteriert dann durch dieses Array und gibt individuelle UPDATE wp_posts SET menu_order = %d WHERE ID = %d-Abfragen aus. Auf großen Websites mit Hunderten von Seiten kann dies einen Burst von Datenbankschreibvorgängen erzeugen — etwas, das es wert ist, überwacht zu werden, wenn Sie sich in einer gemeinsam genutzten Umgebung mit Abfrateraten-Limits befinden.

Einschränkungen

  • Das Plugin betrifft nur Post-Typen, die page-attributes unterstützen. Benutzerdefinierte Post-Typen müssen 'supports' => ['page-attributes'] explizit in register_post_type() registrieren.
  • Die Paginierung in der Admin-Listentabelle kann zu Verwirrung führen: Das Ziehen einer Seite an den Anfang von Seite 2 platziert sie nicht automatisch nach dem letzten Element auf Seite 1. Sie müssen die Anzahl der Elemente pro Seite in den „Bildschirmoptionen” erhöhen, um alle Seiten auf einem Bildschirm zu sehen, bevor Sie über paginierten Grenzen hinweg neu anordnen.
  • Das Plugin ordnet keine Seiten in Navigationsmenüs neu an — diese werden durch eine separate wp_term_relationships-Struktur gesteuert.

Methode 2: Seitenattribute — Manuelle menu_order-Zuweisung

WordPress stellt das menu_order-Feld nativ sowohl im Classic Editor als auch im Block Editor bereit. Diese Methode erfordert keine Plugins und ist die richtige Wahl, wenn Sie eine präzise numerische Reihenfolge für eine kleine Anzahl von Seiten festlegen müssen oder wenn Sie Massenaktualisierungen programmatisch skripten.

Block Editor (Gutenberg)

  1. Öffnen Sie die Seite, die Sie neu anordnen möchten.
  2. Klicken Sie in der rechten Seitenleiste auf die Registerkarte Seite (nicht Block).
  3. Scrollen Sie nach unten zu Seitenattribute.
  4. Suchen Sie das Feld Reihenfolge und geben Sie eine Ganzzahl ein.
  5. Klicken Sie auf Aktualisieren oder Speichern.

Classic Editor

  1. Öffnen Sie den Seiteneditor.
  2. Suchen Sie in der rechten Seitenleiste die Meta-Box Seitenattribute.
  3. Geben Sie einen Wert in das Feld Reihenfolge ein.
  4. Klicken Sie auf Aktualisieren.

Reihenfolgelogik

Seiten mit niedrigeren menu_order-Werten erscheinen zuerst. Seiten mit demselben Wert fallen auf alphabetische Reihenfolge nach Titel zurück. Eine praktische Konvention:

SeitentitelGewünschte Position`menu_order`-Wert
Startseite1.1
Über uns2.2
Leistungen3.3
Portfolio4.4
Kontakt5.5

Lassen Sie Lücken zwischen den Werten (z. B. 10, 20, 30), wenn Sie damit rechnen, später Seiten zwischen bestehenden einzufügen — so vermeiden Sie, dass Sie bei jeder neuen Seite alle Seiten neu nummerieren müssen.

Programmatische Massenaktualisierung über WP-CLI

Für Websites, die von einem anderen CMS migrieren oder Dutzende von Seiten auf einmal umstrukturieren, ist die manuelle Bearbeitung jeder Seite unpraktisch. Verwenden Sie WP-CLI:

wp post update 42 --menu_order=1
wp post update 57 --menu_order=2
wp post update 61 --menu_order=3

Oder durchlaufen Sie ein Array mit einem Shell-Skript:

declare -A pages=([42]=1 [57]=2 [61]=3 [78]=4)
for post_id in "${!pages[@]}"; do
  wp post update "$post_id" --menu_order="${pages[$post_id]}"
done

Direkte Datenbankaktualisierung (Fortgeschritten)

Wenn WP-CLI nicht verfügbar ist und Sie menu_order-Werte in großen Mengen aktualisieren müssen, können Sie SQL direkt ausführen. Erstellen Sie immer zuerst ein Backup.

UPDATE wp_posts SET menu_order = 1 WHERE ID = 42 AND post_type = 'page';
UPDATE wp_posts SET menu_order = 2 WHERE ID = 57 AND post_type = 'page';
UPDATE wp_posts SET menu_order = 3 WHERE ID = 61 AND post_type = 'page';

Dies ist besonders nützlich bei der Verwaltung von WordPress in einer VPS Hosting-Umgebung, in der Sie direkten MySQL-Zugriff haben und strukturelle Änderungen über mehrere Websites hinweg in einem einzigen Wartungsfenster anwenden müssen.

Methode 3: WordPress-Menü-Editor — Neuordnung der Navigationsanzeige

Der Editor unter Darstellung > Menüs steuert die Reihenfolge, in der Seiten in den Navigationsmenüs Ihrer Website erscheinen — dies ist völlig unabhängig von menu_order in wp_posts. Änderungen hier wirken sich nicht auf WP_Query-Ergebnisse, REST API-Antworten oder wp_list_pages()-Ausgaben aus.

Verwenden Sie diese Methode, wenn:

  • Ihr Theme die Navigation von einem registrierten Menüstandort rendert (praktisch alle modernen Themes tun dies)
  • Sie eine Seitenreihenfolge in der Navigationsleiste wünschen, die sich von der strukturellen menu_order in Seitenlisten unterscheidet
  • Sie Seiten als Unterelemente (Dropdowns) verschachteln möchten, ohne ihr tatsächliches WordPress-Elternelement zu ändern

Schritte

  1. Navigieren Sie zu Darstellung > Menüs.
  2. Wählen Sie ein vorhandenes Menü aus der Dropdown-Liste oder klicken Sie auf Neues Menü erstellen.
  3. Aktivieren Sie im Seiten-Panel auf der linken Seite die Seiten, die Sie einschließen möchten, und klicken Sie auf Zum Menü hinzufügen.
  4. Ziehen Sie im Panel Menüstruktur die Elemente in die gewünschte Reihenfolge.
  5. Um ein Unterelement (Dropdown-Kind) zu erstellen, ziehen Sie ein Menüelement leicht nach rechts unter sein beabsichtigtes Elternelement.
  6. Klicken Sie auf Menü speichern.

Kritische Unterscheidung: Menüreihenfolge vs. Seitenreihenfolge

Hier führen viele WordPress-Administratoren subtile Fehler ein. Betrachten Sie dieses Szenario: Ihr Theme verwendet wp_list_pages() in einer Seitenleiste, um einen Seitenindex anzuzeigen. Sie ordnen Seiten unter Darstellung > Menüs neu an, aber die Seitenleistenliste bleibt unverändert. Das ist erwartetes Verhalten — wp_list_pages() liest menu_order aus wp_posts, nicht aus der Menüstruktur. Um die Seitenleiste zu korrigieren, müssen Sie Methode 1 oder Methode 2 verwenden.

Methode 4: Full Site Editor (Block-Themes) — Navigationsblock

Websites, die Block-Themes verwenden (Twenty Twenty-Three, Kadence, GeneratePress Block-Variante), nutzen den Full Site Editor anstelle von Darstellung > Menüs. Der Navigationsblock im FSE hat seine eigene Drag-and-Drop-Oberfläche.

  1. Gehen Sie zu Darstellung > Editor.
  2. Klicken Sie auf den Navigationsblock in der Kopfzeilen-Vorlage.
  3. Verwenden Sie das Listen-Ansicht-Panel (Drei-Linien-Symbol in der oberen Symbolleiste), um alle Navigationselemente zu sehen.
  4. Ziehen Sie Elemente in der Listenansicht, um sie neu anzuordnen.
  5. Klicken Sie auf Speichern.

Das zugrunde liegende Datenmodell ist identisch mit dem klassischen Menüsystem — WordPress speichert FSE-Navigationsmenüs als wp_navigation-Posts — aber die Bearbeitungsoberfläche ist völlig anders.

Methode 5: Programmatische Neuordnung mit pre_get_posts

Für Entwickler, die benutzerdefinierte Themes oder Plugins erstellen, ist der sauberste Weg, die Seitenreihenfolge durchzusetzen, ohne auf menu_order-Werte in der Datenbank angewiesen zu sein, in pre_get_posts einzuhaken und die Abfrageargumente vor der Ausführung zu überschreiben.

add_action( 'pre_get_posts', function( WP_Query $query ) {
    if ( ! is_admin() && $query->is_main_query() && $query->is_post_type_archive( 'page' ) ) {
        $query->set( 'orderby', 'menu_order' );
        $query->set( 'order', 'ASC' );
    }
});

Fügen Sie dies zur functions.php Ihres Themes oder einem site-spezifischen Plugin hinzu. Dies stellt sicher, dass jedes Template, das die Hauptabfrageschleife verwendet, menu_order respektiert, ohne Template-Dateibearbeitungen zu erfordern.

Vergleich: Alle Methoden auf einen Blick

MethodeBeeinflusst `menu_order` in der DBBeeinflusst Navigationsmenü-AnzeigeErfordert PluginAm besten geeignet für
Simple Page Ordering PluginJaNeinJaWebsites mit vielen Seiten, nicht-technische Redakteure
Seitenattribute (Reihenfolge-Feld)JaNeinNeinKleine Websites, präzise numerische Kontrolle
WP-CLI MassenaktualisierungJaNeinNeinEntwickler, Migrationen, Massenoperationen
Direkte SQL-AktualisierungJaNeinNeinFortgeschrittene Administratoren mit DB-Zugriff
Darstellung > MenüsNeinJaNeinNur Navigationsanzeige
Full Site Editor NavigationsblockNeinJaNeinBlock-Themes
pre_get_posts-HookNeinNeinNeinEntwickler, die das Abfrageverhalten überschreiben

Häufige Fallstricke und Sonderfälle

Drag-and-Drop an Paginierungsgrenzen: Wie oben erwähnt, kann Simple Page Ordering eine Seite nicht in einem einzigen Ziehvorgang von Seite 2 der Admin-Liste auf eine Position auf Seite 1 verschieben. Erhöhen Sie die Anzahl der Elemente pro Seite in den Bildschirmoptionen, bevor Sie neu anordnen.

Unterseiten erben den Elternkontext: Bei der Verwendung von Seitenattributen ist menu_order auf Geschwisterseiten unter demselben Elternelement beschränkt. Eine Unterseite mit menu_order=1 erscheint zuerst unter ihren Geschwistern, aber ihre Position relativ zu Seiten unter einem anderen Elternelement ist irrelevant.

Invalidierung von Caching-Schichten: Nach der Massenaktualisierung von menu_order über SQL oder WP-CLI können Objekt-Cache-Einträge für Seitenabfragen noch die alte Reihenfolge widerspiegeln. Auf Websites, die Redis- oder Memcached-Objekt-Caching verwenden, leeren Sie den Cache explizit:

wp cache flush

Auf Websites mit einem Full-Page-Cache (WP Rocket, LiteSpeed Cache, Nginx FastCGI-Cache) leeren Sie auch den Seiten-Cache, da Besucher sonst für die Dauer der Cache-TTL veraltete Navigation sehen werden.

REST API-Konsumenten: Wenn ein entkoppeltes Frontend (Next.js, Nuxt, React) Seiten von der WordPress REST API abruft, muss es explizit orderby=menu_order anfordern — die Standard-REST-API-Reihenfolge für Seiten ist nach Datum absteigend. Aktualisieren Sie Ihre API-Aufrufe entsprechend:

GET /wp-json/wp/v2/pages?orderby=menu_order&order=asc&per_page=100

Multisite-Installationen: Bei WordPress Multisite ist menu_order pro Website. Das Ausführen eines netzwerkweiten WP-CLI-Befehls erfordert die Angabe von --url= für jede Unterwebsite oder die Verwendung von --network mit einer benutzerdefinierten Schleife.

Überlegungen zur Hosting-Umgebung

Die von Ihnen gewählte Methode kann von Ihrem Hosting-Setup abhängen. Bei einem verwalteten Shared Web Hosting-Plan ist der direkte Datenbankzugriff möglicherweise auf phpMyAdmin beschränkt, was WP-CLI- oder reine SQL-Updates weniger praktisch macht — die Plugin- oder Seitenattribute-Methoden sind praktischer. Bei einem VPS mit cPanel haben Sie in der Regel vollen Terminal-Zugriff, was WP-CLI zur schnellsten Option für Massenoperationen macht. Auf einem reinen Dedicated Server mit Root-Zugriff können direkte MySQL-Abfragen und WP-CLI-Skripte in Deployment-Pipelines oder Wartungs-Cron-Jobs integriert werden.

Wenn Sie mehrere WordPress-Installationen verwalten und eine konsistente Seitenreihenfolge über Umgebungen hinweg benötigen, ist die Kodierung von menu_order-Zuweisungen in einem WP-CLI-Skript und dessen Ausführung als Teil Ihres Deployment-Prozesses der zuverlässigste Ansatz — er eliminiert manuelle Schritte und ist versionierbar.

Für Websites, die neben ihrem WordPress-Setup auf eine professionelle E-Mail-Präsenz angewiesen sind, stellt die Kombination Ihres Hostings mit einem dedizierten E-Mail-Hosting-Dienst sicher, dass Ihre Kontakt- und Support-Seiten — die oft prominent angeordnet sein müssen — durch eine ebenso zuverlässige Kommunikationsinfrastruktur unterstützt werden.

Technische Checkliste der wichtigsten Erkenntnisse

Überprüfen Sie Folgendes, bevor Sie eine Neuordnungsmethode wählen:

  • Identifizieren Sie, was Sie tatsächlich neu anordnen. Navigationsmenü-Reihenfolge und menu_order in wp_posts sind unabhängig voneinander. Bestätigen Sie, welche Ihr Theme liest.
  • Überprüfen Sie die Seitenschleife Ihres Themes. Verwendet es wp_list_pages(), ein benutzerdefiniertes WP_Query oder einen registrierten Menüstandort? Jedes liest aus einer anderen Datenquelle.
  • Verwenden Sie Simple Page Ordering für redaktionelle Workflows, bei denen nicht-technische Benutzer Seiten regelmäßig ohne Entwicklerbeteiligung neu anordnen müssen.
  • Verwenden Sie Seitenattribute oder WP-CLI für Präzision, wenn Sie spezifische numerische Werte benötigen oder eine Migration skripten.
  • Verwenden Sie niemals nur Darstellung > Menüs, wenn Ihr Ziel ist, WP_Query-gesteuerte Seitenlisten, Sitemaps oder REST API-Konsumenten zu beeinflussen.
  • Leeren Sie Objekt-Cache und Seiten-Cache nach jeder Massen-menu_order-Aktualisierung, um sicherzustellen, dass alle Schichten sofort die neue Reihenfolge widerspiegeln.
  • Lassen Sie Lücken in der menu_order-Nummerierung (10, 20, 30 statt 1, 2, 3), um zukünftige Einfügungen ohne vollständige Umnummerierung zu ermöglichen.
  • Für Headless-WordPress-Setups übergeben Sie orderby=menu_order&order=asc immer explizit in REST API-Anfragen — gehen Sie nicht von einer Standardreihenfolge aus.

Häufig gestellte Fragen

Beeinflusst die Änderung der Seitenreihenfolge unter Darstellung > Menüs die SEO?

Nein. Die Navigationsmenü-Reihenfolge hat keinen direkten Einfluss auf menu_order in wp_posts, Sitemap-Priorität oder Crawl-Reihenfolge. Wenn Ihr Theme jedoch Breadcrumbs oder Seitenindizes aus wp_list_pages() generiert, werden diese durch menu_order in der Datenbank gesteuert — aktualisieren Sie diese separat mit Methode 1 oder Methode 2.

Warum wird meine Seitenreihenfolge nach dem Aktualisieren einer Seite zurückgesetzt?

Dies geschieht typischerweise, wenn ein Plugin oder Theme-Hook wp_update_post() beim Speichern ausführt und menu_order=0 explizit übergibt. Überprüfen Sie Ihre aktiven Plugins mit add_action('save_post', ...)-Hooks und prüfen Sie, ob eines das menu_order-Feld überschreibt. Das Simple Page Ordering Plugin schützt nicht davor — Sie müssen den konfliktierenden Hook identifizieren und patchen.

Kann ich Seiten ohne Plugin im Block Editor neu anordnen?

Ja. Öffnen Sie eine beliebige Seite, gehen Sie zur Registerkarte Seite in der rechten Seitenleiste, erweitern Sie Seitenattribute und setzen Sie das ganzzahlige Feld Reihenfolge. Dies schreibt direkt in menu_order in wp_posts. Es ist kein Plugin erforderlich.

Funktioniert Simple Page Ordering mit benutzerdefinierten Post-Typen?

Nur wenn der benutzerdefinierte Post-Typ mit 'supports' => ['page-attributes'] registriert wurde. Wenn Sie die Post-Typ-Registrierung kontrollieren, fügen Sie diesen Support-String hinzu. Wenn es sich um einen Drittanbieter-Post-Typ handelt, können Sie die Unterstützung programmatisch in functions.php hinzufügen:

add_post_type_support( 'your_post_type_slug', 'page-attributes' );

Was ist der Maximalwert für menu_order?

Die menu_order-Spalte in wp_posts ist eine vorzeichenbehaftete 32-Bit-Ganzzahl (INT(11)), daher beträgt der Maximalwert 2,147,483,647. In der Praxis sollten Sie höchstens Werte im Hundertbereich verwenden — extrem große Werte können in einigen Theme-Funktionen zu unerwartetem Verhalten führen, die Arithmetik auf menu_order für visuelle Versatzberechnungen durchführen.

15%

15% auf alle Hosting-Dienste sparen

Teste deine Fähigkeiten und erhalte Rabatt auf jeden Hosting-Plan

Benutze den Code:

Skills
Anfangen