Erklärung des WordPress Template Tags wp_list_pages

Kategorie: Wordpress Tipps

Mit dem Template Tag wp_list_pages werden grundsätzlich alle statischen Seiten einer WordPress Installation aufgelistet. Durch die zur Verfügung stehenden Parameter können viele verschiedene Veränderungen vorgenommen und der Code an die invidiuellen Bedürfnisse angepasst werden.

Inhalt

wp_list_pages ohne Überschrift

Angenommen man hat in WordPress die links abgebildete Struktur an Unterseiten angelegt. Dann ergibt sich durch die Eingabe des Codes (<?php wp_list_pages();?> folgende Ausgabe im Frontend:

Die Überschrift Seiten wird automatisch generiert, möchte man eine Ausgabe ohne diese Überschrift erreichen kann man die Funktion um einen Parameter erweitern.

<?php wp_list_pages('title_li=');?>

wird hinter title_li= kein Wert geschrieben, wird die Überschrift weggelassen.

wp_list_pages als korrekte HTML-Liste

Im Frontend wird die Liste nun richtig dargestellt. Allerdings wird semantisch unkorrektes HTML erzeugt, weil der öffnende und schließende <ul> Tag fehlt:

<li class="page_item page-item-4">
<a href=".../erste-seite/">Erste Seite</a></li>
....

Ergänzt man diese beiden unschließenden Tags erhält man folgenden Code zur Erzeugung des semantisch korrekten Codes ohne Überschrift:

<ul>
<?php wp_list_pages('title_li=');?>
</ul>

wp_list_pages Unterseiten ausblenden bzw. anzeigen

Möchte man mehrere Parameter variieren, kann man diese in eine Array verändern und in einer Variable $args speichern. In diesem Fall wird eine Liste der Seiten ohne Überschrift und mit der Tiefe depth=1 erzeugt, es werden also nur die Hauptseiten angezeigt. Um auch die Unterseiten anzeigen zu lassen, müsste man depth=2 in den Code einfügen, dann wird auch die zweite Menüebene berücksichtigt wird.

<?php 
$args=array(
	'depth'        => 1,
	'title_li'     => '',
	);
?>
<ul>
<?php wp_list_pages($args);?>
</ul>

wp_list_pages bestimmte Seiten nicht anzeigen

Durch exclude kann man bestimmte Seiten aus der Auflistung ausschließen. Dazu muss man dem Parameter die entsprechende id der Seite zuweisen. Die id der Seite erfährt man, wenn man sich im Backend mit der Maus über die Seite bewegt. Dann erscheint unten links ein Code der Art …?post=6 und somit hat die Seite die id 6. In unteren Beispielcode werden die zweite Seite (id=6) und die vierte Seite (id=10) ausgeblendet. Der Befehl include hat den gegenteiligen Effekt, hier müssen die Seiten aufgelistet werden, die angezeigt werden sollen, alle andere Seiten werden nicht angezeigt.

<?php 
$args=array(
	'exclude'        => '6,10',
	'title_li'     => '',
	);
?>
<ul>
<?php wp_list_pages($args);?>
</ul>

wp_list_pages nur die Unterseiten einer bestimmten Seite anzeigen

Um nur die Unterseiten einer bestimmten Seite anzeigen zu lassen, muss man wieder die id feststellen und diese id dann dem Element child_of zuweisen. Die Dritte Seite hat die id 8, daher werden durch folgenden Code nur die Unterseiten der Dritten Seite angezeigt.

<?php 
$args=array(
	'child_of'     => '8',
	'title_li'     => '',
	);
?>
<ul>
<?php wp_list_pages($args);?>
</ul>

wp_list_pages per Shortcode die Unterseiten anzeigen lassen

Bei der oben vorgestellten Variante, müssen die ids für jede Seite einzeln rausgesucht und dann in den Code eingetragen werden. Es gibt allerdings auch die Möglichkeit folgende Funktion in die functions.php einzutragen:

function unterseiten_aktive_seite() {
   global $post;
   return '<ul>'.wp_list_pages('title_li=&child_of='.$post->ID).'</ul>';
}
add_shortcode('unterseiten', 'unterseiten_aktive_seite');

Dadurch wird die id der aktiven Seite dynamisch ausgelesen und anschließend werden nur die Unterseiten dieser Seite angezeigt.Durch den Shortcode [unterseiten] kann dieser Shortcode im Backend jeweils auf der gewünschten Seite im Texteditor eingegeben werden und im Frontend werden dann die UNterseiten, der jeweils gerade aktiven Hauptseite angezeigt.

Verwandte Beiträge

WordPress Tipps zu Kategorien

In WordPress können die geschriebenen Beiträge in Kategorien eingeteilt werden, um die Übersichtlichkeit für die Leser zu erhöhen. Die Kategorien sollten möglichst eindeutige und aussagekräftige Namen bekommen. Inhalt WordPress Kategorien weiterlesen

WordPress Hooks – eine Einführung

Wird eine WordPress Seite aufgerufen, werden verschiedene Prozesse nacheinander ausgeführt. Durch einen Hook kann man sich über die functions.php in den WordPress-Code einhaken und diese Prozesse verändern. Die Hooks verbleiben weiterlesen

WordPress Shortcodes erstellen

Es gibt in WordPress die Möglichkeit häufig wiederkehrende Elemente in Shortcodes zu programmieren, um sich so den Aufwand der ständigen Eingabe des kompletten Textes beziehungsweise Codes zu ersparen. Die Shortcodes weiterlesen

Der WordPress Loop für Anfänger – eine Erklärung

Der WordPress Loop ist der wichtigste Bestandteil jedes WordPress Templates. Durch diese Schleife wird der im Backend eingebene Inhalt ausgeben. Durch while (have_posts()) : the_post(); wird geprüft, ob Inhalt vorhanden weiterlesen