Neue Funktion wp_page_menu() in WordPress 2.7

Neue Funktion wp_page_menu() in WordPress 2.7

14. Dezember 2008 in WordPress Funktionen 3 Kommentare

In der Reihe der neuen Features von WordPress 2.7 beschäftige ich mich heute mit der neuen Funktion wp_page_menu() und ihren Einsatzmöglichkeiten in einem WordPress Theme.

Die Funktion wp_page_menu() ist der alten Page-Funktion wp_list_pages() sehr ähnlich. Genauer gesagt generiert wp_page_menu() einen div um die Page-Liste und dient somit als Container für die wp_list_pages() und bietet uns zusätzlich die Möglichkeit einen Homepage-Link hinzuzufügen, die Klasse des Container-divs zu bestimmen und Text oder HTML vor und/oder nach dem Linktext innerhalb der a-Tags auszugeben (sinnvoll z. B. für Sliding Doors). Außerdem können neben den unten genannten Parametern weiterhin alle der alten Funktion wp_list_pages() verwendet werden.

Parameter wp_page_menu():

  • title_li: Titel der Liste. Ist dieser null oder leer wird kein Titel angezeigt und die Liste wird nicht automatisch in ein ul-Tag gepackt.
  • sort_column: Reihenfolge der Seiten (sortier nach ‘menu_order’, ‘post_title’, ‘post_date’, ‘post_modified’, ‘ID’, ‘post_author’ oder ‘post_name’).
  • menu_class: CSS-Klasse des Container-divs.
  • echo: Dieser Wert kann 0 oder 1 sein. Bei 0 (dafault) wird die Liste nicht ausgegeben und kann als HTML-String mit PHP weiterverarbeitet werden.
  • show_home: Dieser Wert kann 0 oder 1 sein. Bei 0 (default) wird kein Link ‘Home’ (Blog-URL) als erster Listenpunkt ausgegeben.
  • link_before: Text- oder HTML-String innerhalb des a-Tags vor dem Linktext.
  • link_after: Text- oder HTML-String innerhalb des a-Tags nach dem Linktext.

Standardwerte wp_page_menu():

$defaults = array(
    'title_li'    => '',
    'sort_column' => 'menu_order',
    'menu_class'  => 'menu',
    'echo'        => false,
    'link_before' => '',
    'link_after'  => '');

Aufruf wp_page_menu():

Ein Aufruf der Funktion in WordPress 2.7 könnte also bspw. wie folgt aussehen:

<?php wp_page_menu('show_home=1&amp;include=1,2,4,7&amp;menu_class=page-navi&amp;title_li='); ?>

Bemerkung:
Wir können auch den Parameter ‘include’ verwenden, da, wie angesprochen, auch alle Parameter der alten wp_list_pages() verwendet werden können.

Ausgabe wp_page_menu():

Die Ausgabe dieser Funktion würde dann folgendermaßen aussehen:

<div class="page-navi">
	<ul>
		<li class="current_page_item"><a href="#">Home</a></li>
		<li class="page_item page-item-1"><a href="#" title="Seite1">Seite1</a></li>
		<li class="page_item page-item-2"><a href="#" title="Seite2">Seite2</a></li>
		<li class="page_item page-item-3"><a href="#" title="Seite4">Seite4</a></li>
		<li class="page_item page-item-3"><a href="#" title="Seite7">Seite7</a></li>
	</ul>
</div>

Kompatibilität wp_page_menu():

Nun werden sicherlich nicht gleich alle ihre WordPress-Installation auf WordPress 2.7 aktualisieren. Wir wollen also in unserem WordPress Theme die neue Funktion nutzen, müssen jedoch für ältere Versionen auch ‘rückwärts’kompatibel sein.

Mit folgendem Aufruf sichern wir uns dahingehend ab:

<?php if(function_exists('wp_page_menu')) : ?>
	<?php wp_page_menu('show_home=1&amp;menu_class=page-navi&amp;title_li='); ?>
<?php else : ?>
	<div class="page-navi">
		<ul>
			<li <?php if(is_home()) { ?>class="current_page_item"<?php } ?>>Home</li>
			<?php wp_list_pages('title_li='); ?>
		</ul>
	</div>
<?php endif; ?>

Bemerkung:
Wir fragen in diesem Beispiel erst ab, ob es die Funktion wp_page_menu() überhaupt gibt. Sollte sie nicht vorhanden sein (bei einer älteren WordPress-Version), wird lediglich die alte Funktion wp_list_pages() aufgerufen. Den Container-div und den Homepage-Link müssen wir in diesem Fall, wie gehabt, selbst erstellen.

Relevante Links:

,

Simon [webdemar]

Moin, ich bin Simon und betreibe webdemar.com als meine ernstgemeinte Spielwiese für WordPress, Webdesign und so.

RSS abonnieren Twitter

2 Kommentare

  • Mark
    15. Dezember 2008

    Super geiles Tutorial. Vielen Dank dafür. Werde das auf jeden Fall verwenden. Super Blog!!!

  • TheoCoda
    16. Dezember 2008

    Schönes Ding. Das werde ich mal testen.

1 Trackback

Kommentar schreiben

Dein Name hier
Dein Name hier
12. March 2010

Gravatars sind an. Jetzt kostenlos registrieren!

WordPress Hosting

Für das Hosten von WordPress Blogs empfehlen wir Webspace von Hostloco.
Eine ganze Fotowelt mit nur einer Software - Fotobuch-Software von CEWE.

So am Rande

WordPress 2.8.6 Security Release - 16. November 2009

WordPress versorgt uns von der nächsten großen Version 2.9 noch mit einem weiteren Sicherheits-Release – WordPress 2.8.6. Damit wird eine [...]

WordPress 2.8.5 schließt Sicherheitslücke - 21. Oktober 2009

Seit heute Nacht ist WordPress 2.8.5 zum Download erhältlich. Obwohl schon alle Maschinen für die Version 2.9 laufen, schließt WordPress [...]

WordPress 2.9 kündigt sich an - 14. Oktober 2009

Bald ist es soweit und die erste Beta-Version von WordPress 2.9 wird zum Download erhältlich sein. Das soll laut Peter [...]

Link: Anleitung zur Erstellung von Theme-Options in einem WordPress-Theme - 5. Oktober 2009

Wer ein professionelles WordPress-Theme erstellen möchte, kommt um Theme-Options, einer separaten Seite für Theme-Einstellungen im WordPress-Admin, nicht herum. Theme-Options bieten [...]

Link: Digging into WordPress - 1. Oktober 2009

Sollte es unter Euch einen WordPress-Begeisterten geben, der diese Seite noch nicht kennt, möchte ich ihm diese hiermit vorstellen. Auf [...]

Kostenloser Mozilla Firefox Download des aktuellen Mozilla Firefox Browser.
Offizielles Stadtportal für München. Ein Service für die Landeshauptstadt München.
Do you like this theme?

Powered by WordPress.org - Copyright © 2009. Alle Rechte vorbehalten - Professional WordPress Themes