kulturbanause Blog

Responsive Design, WordPress, Konzeption, HTML, CSS, JS & UX/UI …

WordPress: Titel übergeordneter Seiten (parent) auslesen (direkter und oberster Vorfahre)

Bei der Erstellung eines WordPress-Themes kommt es häufiger vor, dass man nur den Namen einer übergeordneten Seite (parent page) anzeigen möchte. Zum Beispiel um für eine Metanavigation in der Sidebar eine Überschrift auszugeben.
Besonders interessant ist in diesem Zusammenhang der Titel einer Eltern-Seite auf oberster Verschachtelungsebene.

Workshops und Seminare von kulturbanause

Visual Prototyping, Responsive Design, CSS Grid & Flexbox, WordPress, Adobe XD, HTML & CSS Grundlagen, Website-Optimierung …

Jetzt Frühbucher-Rabatte sichern!

Bei einer Verschachtelungstiefe ab zwei, besteht ein Unterschied zwischen dem direkten Vorfahren einer Seite und dem Vorfahren auf oberster Ebene. Das folgende Beispiel zeigt eine Beispiel-Verschachtelung:

  • Geografie
    • Städte
      • Berlin
      • Köln
    • Flüsse
      • Spree
      • Rhein

Übergeordnete Seite auf oberster Ebene ausgeben

Nehmen wir nun an wir befinden uns auf der Seite "Berlin". Mit dem folgenden Snippet geben wir den Vorfahren auf oberster Ebene aus. In unsererm Beispiel also "Geografie".

Dieses Snippet gehört entweder global in die functions.php oder ebenfalls in die Template-Datei.


<?php
	 
function get_top_level_parent_title() {

global $post;
  if ( empty($post->post_parent) )
	{ the_title(); }
  else {
	$ancestors = get_post_ancestors($post->ID);
	end($ancestors);
	  echo get_the_title(end($ancestors));
  }
}

?>

Um den Titel im Theme auszugeben verwendet ihr folgendes Snippet:


<?php get_top_level_parent_title() ?>

Direkten Vorfahren ausgeben

Wenn wir nun auf Basis des gleichen Beispiels den direkten Vorfahren (Städte) auslesen wollten, muss das Snippet leicht modifiziert werden.

Code für die functions.php.


<?php
	 
function get_ancestor_title() {

global $post;
  if ( empty($post->post_parent) )
	{ the_title(); }
  else {
	$ancestors = get_post_ancestors($post->ID);
	end($ancestors);
	  echo get_the_title($ancestors[0]);
  }
}

?>

Um den Titel im Theme auszugeben verwendet ihr folgendes Snippet:


<?php get_ancestor_title() ?>

via

Jetzt bist du gefragt!

Hast du Anregungen, Ergänzungen, einen Fehler gefunden oder ist dieser Beitrag nicht mehr aktuell? Dann freuen wir uns auf deinen Kommentar.

Du kannst diesen Beitrag natürlich auch weiterempfehlen. Wir sind dir für jede Unterstützung dankbar!

Unterstützung bei WordPress-Projekten

Unsere WordPress Agentur ist auf die Entwicklung maßgeschneiderter WordPress-Themes und -Websites spezialisiert. Wenn du Unterstützung bei der Planung, Gestaltung und Entwicklung eines Projekts benötigst, helfen wir gerne weiter.
WordPress-Leistungsangebot →

Das könnte dich auch interessieren

4 Kommentare

  1. Simon Hestermann

    Verfasst am 6. September 2012 um 11:37 Uhr.

    Vielen Dank!

    Meine Version hat nicht richtig funktioniert und mit der Version ist mir ein Licht aufgegangen!

  2. Flo

    Verfasst am 5. März 2013 um 12:15 Uhr.

    Vielen Dank für diesen Beitrag. Mein Problem ist jetzt das ich auf einigen Seiten keine Unterseiten habe und mein Titel dann doppel ausgegeben wird.

    Gibt es für dieses Problem auch eine Lösung?

    • maki

      Verfasst am 26. Juni 2013 um 18:44 Uhr.

      Du kannst das ganze ja auch mit einer IF Funktion abfragen, und wenn es keinen übergeordneten Titel gibt, wird nichts ausgegeben.

      if( function_exists(“)

      such mal im Template nach so einer Abfrage, oder in einer single.php , dann kannst du diese kopieren und an die Abfrage hier anpassen.

Kommentar verfassen

Dieser Blog lebt vom Feedback der Besucher! Also los, mach mit!
Bitte habe Verständnis dafür, dass Kommentare die mit dem Inhalt dieses Beitrags nichts zu tun haben, gelöscht werden.