In eigenem Theme Menüs einbinden.

gepostet am 13.05.2013 um 15:05 Uhr

Dem Theme das Menü “beibringen”:

Um in einem eigenen Theme die Möglichkeit zu schaffen, Menüs zu verwenden, muss man diese Menüs in dem Theme erst einmal freischalten. Dafür fügen wir in der functions.php eine kleine Funktion ein. Nehmen wir mal an wir wollen zwei Menüs freigeben. Ein Hauptmenü und ein Zweitmenü im Footer. Dafür müssten wir den Code in folgender Form in unsere Functions.php schreiben:

In Zeile drei überprüfen wir erst einmal ob die aktuelle WordPress Version überhaupt Menüs kennt. Dafür überprüfen wir ob die Funktion register_nav_menus existiert. In Zeile vier rufen wir diese Funktion auf. Als Parameter übergeben wir ein Array das die Menüs enthält.

Unbenannt

Wenn man jetzt im WordPress Menü auf den Punkt Design geht, findet man dort zusätzlich den Punkt Menüs. Damit haben wir dem Theme beigebracht die Menüfunktion von Word zu nutzen. Wenn wir jetzt auf diesen Punkt gehen, können wir schon anfangen unsere eigenen Menüs zu erstellen.

 

 

 

 

 

Das erstellte Menü in das Theme einbinden:

Die Menüs sind zwar schon vorhanden und können im Backend verwaltet werden, sind aber noch nicht im Theme zu sehen. Dafür müssen wir das Menü noch im Theme ausgeben lassen. Das tun wir in der dementsprechenden Theme Datei and der Stelle, an der wir das Menü haben wollen:

Um das Menü zu bekommen ruft man die Funktion wp_nav_menu auf. Übergeben wird wieder ein Array in dem wir die theme location übergeben, die wir vorhin eingegeben haben. Also für das Hauptmenü in diesem Fall “main-menu”. Desweiteren übergebe ich hier einen Parameter namens “container_class” in dem ich den namen übergebe, den mein Div haben soll, in das das Menü geschrieben wird. Damit wird das Menü an dieser Stelle ausgegeben.

Wir sollten vor der Ausgabe allerdings noch prüfen, ob dieses Menü überhaupt vorhanden ist. Das macht z. B. dann Sinn, wenn ihr euer Theme ausliefern wollt, sodass es von anderen Usern benutzt werden kann. Das machen wir mit der Funktion has_nav_menu der wir wieder die location mitgeben:

 

 

Das Menü “stylen”:

Das Menü wird in einer Unsorted List ausgegeben. Das heißt das Menü hat folgende Struktur:

Um das Hauptmenü dieser Seite zu gestalten habe ich folgenden CSS Code verwendet:

Das Menü wird nun richtig angezeigt!

Anmerkung: Mit diesem CSS kann nur ein Menü mit zwei Ebenen erstellt werden!

 

Das Menü bearbeiten:

Jetzt würden wir unser Menü sehen, und es würde auch richtig formatiert werden, wenn wir nur Menüpunkte hätten, die unser Menü füllen. Das ist aber kein großes Ding! Dafür gehen wir einfach auf den Punkt Menüs unter Design im WordPress Menü (siehe oben). Dort können wir uns jetzt rechts über das große + (Plus) Zeichen ein neues Menü erstellen, unsere Punkte hinzufügen, sie in verschiedenen Ebenen einbetten und dann das Ganze einem unserer beiden erstellten Menübereiche (Hauptmenue oder Zusatzmenue) zuordnen. Schon wird unser Menü angezeigt.

Das war mein zweites Tutorial. Hoffe es ist hilfreich! Über Kritik und Verbesserungsvorschläge würde ich mich sehr freuen!

2 Antworten zu “In eigenem Theme Menüs einbinden.”

  1. Stephan sagt:

    Was Du unter “Das erstellte Menü in das Theme einbinden:” beschreibst bleibt für mich unklar.

    Wo wird der PHP-Code eingetragen. In functions.php oder in die PHP-Datein, die für die gewünschte Anzeigegegend zuständig ist.

    Eigentlich müsste der PHP-Code auch noch abgesichert werden, ob überhaupt ein Menü vom Nutzer definiert worden ist. Wenn diese Sicherung nicht existiert, dann werden alle Menüpunkte die es überhaupt gibt, ausgegeben.

    • Artur sagt:

      Hallo Stephan,

      danke für die Kritik. Du hast natürlich recht. Ich werde das Tutorial diesbezüglich in Kürze bearbeiten!

      LG

      Artur

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.