Pages Nav Shortcode – warum ich dieses Plugin gebaut habe und wofür ich es heute einsetze
In fast jedem WordPress-Projekt gibt es einen Punkt, an dem die Standard-Navigation nicht mehr ausreicht. Seiten wachsen, Inhalte werden komplexer, Kategorien verzweigen sich – und plötzlich braucht man kontextbezogene Navigationen, die genau dort helfen, wo sich Nutzer gerade befinden.
Genau aus dieser Praxis heraus ist das Plugin Pages Nav Shortcode entstanden.
Ich wollte ein Werkzeug, das mir:
- aus Seiten einen sauberen, hierarchischen Navigationsbaum baut
- aus Kategorien eine strukturierte Beitragsnavigation erzeugt
- ohne Page Builder, ohne JS-Framework, ohne visuelle Abhängigkeiten funktioniert
- vollständig per Shortcode steuerbar ist
- und ein maximal simples Markup ausgibt, das ich selbst gestalten kann
Die Grundidee des Plugins
Das Plugin verfolgt eine sehr klare Philosophie:
Logik im Plugin, Design im Theme.
Deshalb:
- kein Styling-Zwang
- keine Inline-Styles
- keine Icons, keine Farben, kein Layout
- nur sauberes HTML und sinnvolle CSS-Klassen
Das Plugin liefert zwei Shortcodes, die bewusst getrennte Aufgaben haben:
- Eine Seiten-Navigation, die hierarchische Seitenstrukturen abbildet
- Eine Beitrags-Navigation, die Beiträge aus Kategorien (inkl. Unterkategorien) listet
Beide sind ideal für:
- Sidebars
- Inhaltsverzeichnisse
- Wissensbereiche
- Dokumentationen
- Landingpages mit Unterseiten
- Blogs mit thematischer Gliederung
Seiten-Navigation: Struktur sichtbar machen
WordPress-Seiten sind hierarchisch – aber das Frontend nutzt dieses Potenzial oft nicht. Genau hier setzt die Seiten-Navigation an.
Typische Anwendungsfälle:
- Unterseiten-Navigation innerhalb eines Themenbereichs
- Orientierungshilfe in umfangreichen Seitenstrukturen
- Ersatz oder Ergänzung zur Hauptnavigation
Navigation relativ zur aktuellen Seite
Ein häufiger Wunsch ist:
„Zeig mir die Unterseiten der Seite, auf der ich gerade bin.“
Genau dafür gibt es den Modus current.
Beispiel (im Text beschrieben):
Die Navigation startet automatisch bei der aktuell aufgerufenen Seite und zeigt deren Kinder.
Das ist ideal für:
- Leistungsseiten mit Unterpunkten
- Dokumentationen
- Landingpages mit mehreren Sektionen als Unterseiten
Navigation aus ausgewählten Seiten aufbauen
Manchmal soll die Navigation nicht automatisch aus der Seitenstruktur kommen, sondern bewusst kuratiert sein.
Dafür gibt es den IDs-Modus:
- Du gibst eine Liste von Seiten-IDs vor
- Optional werden deren Nachkommen automatisch mitgeladen
- Die Reihenfolge kann entweder der Query folgen oder exakt beibehalten werden
Das ist besonders nützlich für:
- Microsites
- Footer-Navigationen
- thematische Sidebars
- Landingpages mit festen Navigationspunkten
Tiefe, Ebenen und Kontrolle
Ein zentrales Feature des Plugins ist die feine Steuerung der Tiefe:
- nur direkte Kinder anzeigen
- Kinder + Enkel anzeigen
- oder unbegrenzte Tiefe
So kannst du exakt festlegen, wie „tief“ die Navigation gehen darf – was enorm hilft, um Seiten nicht zu überladen.
Zusätzlich gibt es:
- Ausschluss einzelner Seiten
- Sortierung nach Menü-Reihenfolge, Titel oder Datum
- ASC / DESC
- Ausgabe mit oder ohne
<nav>-Wrapper (für maximale Theme-Integration)
Aktive Seiten & Orientierung
Ein wichtiges Detail, das oft übersehen wird: Kontext-Markierung.
Das Plugin sorgt automatisch dafür, dass:
- die aktuelle Seite als aktiv markiert wird
- Elternseiten der aktuellen Seite ebenfalls kenntlich sind
Technisch bedeutet das:
- der aktuelle Link erhält
class="active"undaria-current="page" - Vorfahren erhalten
class="active-parent"
Damit kannst du im CSS sehr gezielt arbeiten:
- aktuelle Seite fett
- übergeordnete Ebene unterstrichen
- klare visuelle Orientierung für Nutzer
Beitrags-Navigation nach Kategorien (inkl. Unterkategorien)
Neben Seitenstrukturen gibt es einen zweiten großen Bereich, der in WordPress oft unterschätzt wird: Kategorien mit Unterkategorien.
Standardmäßig listet WordPress Beiträge meist:
- chronologisch
- oder ohne klare thematische Navigation
Das Plugin ergänzt genau hier eine Kategorie-basierte Beitragsnavigation.
Kategorien wirklich vollständig nutzen
Ein häufiger Stolperstein:
Beiträge aus Unterkategorien werden oft vergessen oder nicht automatisch berücksichtigt.
Deshalb ist im Plugin standardmäßig aktiviert:
- Unterkategorien werden rekursiv einbezogen
Das bedeutet:
- Du wählst eine Hauptkategorie
- alle Beiträge aus dieser Kategorie und allen Kind-Kategorien werden angezeigt
Ideal für:
- Wissensdatenbanken
- Ratgeber-Bereiche
- Blogs mit Themenclustern
- Lexika
Natürlich lässt sich dieses Verhalten auch bewusst abschalten, wenn nur die Hauptkategorie relevant sein soll.
Beitragsliste als echte Navigation
Die Beitragsausgabe ist bewusst keine klassische Blogliste, sondern eine Navigation:
- Ausgabe als einfaches
<ul> - Jeder Beitrag ein
<li>mit Link - Optional mit Datum
- Aktueller Beitrag wird hervorgehoben
Das ist perfekt für:
- Seitenleisten
- „Weitere Artikel zu diesem Thema“
- Inhaltsnavigation innerhalb eines Themenbereichs
Auch hier gilt:
- aktueller Beitrag bekommt
aria-current="page" - CSS-Klasse
activeam Listeneintrag
Warum kein Styling im Plugin?
Ganz bewusst.
Ich habe in zu vielen Projekten erlebt, dass Plugins:
- Design vorgeben
- Farben erzwingen
- Layouts kaputt machen
- oder sich nicht sauber ins Theme integrieren lassen
Dieses Plugin macht das Gegenteil:
- Es liefert Struktur und Logik
- Das Theme entscheidet über Darstellung
Ein einfaches CSS reicht oft schon, um die Navigation perfekt einzubetten – egal ob minimalistisch, klassisch oder modern.
Dashboard & Einstellungsseite: Dokumentation dort, wo sie gebraucht wird
Ein weiterer Punkt, der mir wichtig war:
Die Doku gehört ins Backend.
Deshalb bringt das Plugin:
- eine Einstellungs- / Hilfeseite unter „Einstellungen“
- ein Dashboard-Widget mit vielen kopierbaren Beispielen
Wichtig:
- Es gibt keine versteckten Optionen
- Die Seite dient bewusst der Erklärung, nicht der Konfiguration
So können auch Redakteure:
- schnell nachsehen, wie etwas funktioniert
- Beispiele kopieren
- verstehen, was welcher Parameter bewirkt
Typische Einsatzszenarien aus der Praxis
Ich setze das Plugin u. a. ein für:
- Leistungsseiten mit Unterseiten-Navigation
- Dokumentationsbereiche
- Vereinswebsites mit klarer Seitenstruktur
- Blogs mit thematischen Sidebars
- Wissensportale mit Kategorien & Unterkategorien
- SEO-optimierte interne Verlinkung
Gerade für interne Verlinkung ist das Plugin extrem wertvoll, weil:
- Beziehungen sichtbar werden
- Nutzer länger auf der Seite bleiben
- Suchmaschinen Struktur besser verstehen
Fazit
Pages Nav Shortcode ist kein „Alleskönner-Plugin“.
Und genau das ist seine Stärke.
Es macht:
- Seiten-Navigation
- Kategorie-basierte Beitragsnavigation
Und das:
- sauber
- vorhersehbar
- ohne Nebenwirkungen
- ohne Styling-Zwang
- ohne Overhead
Wenn du WordPress-Seiten oder Kategorien nicht nur als Inhalte, sondern als Struktur begreifst, ist dieses Plugin ein extrem solides Werkzeug.
Beispiele – Seiten-Navigation (pages_nav)
Navigation ausgehend von der aktuellen Seite
<pre>[pages_nav parent="current"]</pre>
Nur direkte Unterseiten anzeigen
<pre>[pages_nav parent="current" first_layer_only="true"]</pre>
Tiefe begrenzen (Kinder + Enkel)
<pre>[pages_nav parent="42" depth="2"]</pre>
Unbegrenzte Tiefe
<pre>[pages_nav parent="42" depth="0"]</pre>
Navigation aus festen Seiten-IDs
<pre>[pages_nav ids="10,22,35"]</pre>
Seiten-IDs inklusive aller Nachkommen
<pre>[pages_nav ids="10,22" include_descendants="true"]</pre>
Reihenfolge der IDs beibehalten
<pre>[pages_nav ids="35,10,99" ids_order="keep"]</pre>
Bestimmte Seiten ausschließen
<pre>[pages_nav parent="42" exclude_ids="55,60"]</pre>
Alphabetisch sortieren
<pre>[pages_nav parent="42" orderby="title" order="ASC"]</pre>
Nach Datum sortieren
<pre>[pages_nav parent="42" orderby="date" order="DESC"]</pre>
Nur das UL ausgeben (ohne nav)
<pre>[pages_nav parent="42" nav="false"]</pre>
Eigene CSS-Klasse setzen
<pre>[pages_nav parent="current" class="sidebar-navigation"]</pre>
Eigenes aria-label vergeben
<pre>[pages_nav parent="current" label="Unterseiten Navigation"]</pre>
Beispiele – Beitragsnavigation nach Kategorie (category_posts)
Alle Beiträge einer Kategorie (inkl. Unterkategorien)
<pre>[category_posts category="wissen"]</pre>
Kategorie per ID
<pre>[category_posts category_id="12"]</pre>
Unterkategorien ausschließen
<pre>[category_posts category="wissen" include_children="false"]</pre>
Alphabetische Sortierung
<pre>[category_posts category="wissen" orderby="title" order="ASC"]</pre>
Sortierung nach Änderungsdatum
<pre>[category_posts category="wissen" orderby="modified"]</pre>
Beitragsdatum anzeigen
<pre>[category_posts category="wissen" show_date="true"]</pre>
Alle Beiträge anzeigen (kein Limit)
<pre>[category_posts category="wissen" per_page="0"]</pre>
Aktuellen Beitrag nicht hervorheben
<pre>[category_posts category="wissen" highlight_current="false"]</pre>
Typische Sidebar-Navigation
<pre>[category_posts category="ratgeber" orderby="title"]</pre>
Kombinierte Praxisbeispiele
Dokumentationsbereich
<pre>[pages_nav parent="current" depth="2"]</pre>
<pre>[category_posts category="dokumentation"]</pre>
Wissensbereich mit klarer Gliederung
<pre>[pages_nav parent="current" first_layer_only="true"]</pre>
<pre>[category_posts category="wissen" orderby="title"]</pre>
Kuratierte Sidebar-Navigation
<pre>[pages_nav ids="10,22,35" ids_order="keep"]</pre>
Footer-Navigation ohne Wrapper
<pre>[pages_nav ids="10,22,35" nav="false"]</pre>
Cheat-List – Pages Nav Shortcode
Seiten-Navigation (pages_nav)
<pre>[pages_nav parent="current"]</pre>
<pre>[pages_nav parent="current" first_layer_only="true"]</pre>
<pre>[pages_nav parent="42" depth="2"]</pre>
<pre>[pages_nav parent="42" depth="0"]</pre>
<pre>[pages_nav ids="10,22,35"]</pre>
<pre>[pages_nav ids="10,22" include_descendants="true"]</pre>
<pre>[pages_nav ids="35,10,99" ids_order="keep"]</pre>
<pre>[pages_nav parent="42" exclude_ids="55,60"]</pre>
<pre>[pages_nav parent="42" orderby="title" order="ASC"]</pre>
<pre>[pages_nav parent="42" orderby="date" order="DESC"]</pre>
<pre>[pages_nav parent="42" nav="false"]</pre>
<pre>[pages_nav parent="current" class="sidebar-navigation"]</pre>
<pre>[pages_nav parent="current" label="Unterseiten Navigation"]</pre>
Beitragsnavigation nach Kategorie (category_posts)
<pre>[category_posts category="wissen"]</pre>
<pre>[category_posts category_id="12"]</pre>
<pre>[category_posts category="wissen" include_children="false"]</pre>
<pre>[category_posts category="wissen" orderby="title" order="ASC"]</pre>
<pre>[category_posts category="wissen" orderby="modified"]</pre>
<pre>[category_posts category="wissen" show_date="true"]</pre>
<pre>[category_posts category="wissen" per_page="0"]</pre>
<pre>[category_posts category="wissen" highlight_current="false"]</pre>
<pre>[category_posts category="ratgeber" orderby="title"]</pre>
Kombinierte Layouts
<pre>[pages_nav parent="current" depth="2"]</pre>
<pre>[category_posts category="dokumentation"]</pre>
<pre>[pages_nav parent="current" first_layer_only="true"]</pre>
<pre>[category_posts category="wissen" orderby="title"]</pre>
<pre>[pages_nav ids="10,22,35" ids_order="keep"]</pre>
<pre>[pages_nav ids="10,22,35" nav="false"]</pre>