WordPress Seiten-ID anhand des Titels herausfinden

WordPress Seiten-ID anhand des Titels herausfinden

3. November 2009 in WordPress Funktionen 10 Kommentare

Bei der Erstellung von WordPress-Themes kommt es hier und da vor, dass z. B. für die Ermittlung eines Permalinks einer Seite die ID herausgefunden werden muss, wenn man nur den Titel zur Verfügung hat. Mit get_page_by_title() ist das ganz einfach zu lösen.

get_page_by_title() anwenden

Die Funktion kann wie folgt angewendet werden:

<?php get_page_by_title( $page_title, $output ) ?>

get_page_by_title() lässt zwei Parameter zu. Der erste dieser Parameter ist auf jeden Fall erforderlich. Dort wird der Titel der Seite als String angegeben, deren ID ich herausfinden möchte:

<?php get_page_by_title( 'Meine Seite' ) ?>

Optional kann man der Funktion einen zweiten Parameter mit auf den Weg geben. Dort lässt sich die Ausgabe der Funktion bestimmen. Standardmäßig liefert das obige Beispiel den Datensatz der Seite mit dem entsprechenden Titel als Objekt.

Ausgabe als Objekt

Die ID der Seite mit dem Titel Meine Seite könnte also wie folgt ausgegeben werden:

<?php
    $seite = get_page_by_title( 'Meine Seite' );
    echo $seite->ID;
?>

Ausgabe als numerischer Array

Eine weitere Möglichkeit ist die Ausgabe der Funktion als numerischer Array. Die ID der Seite mit dem Titel Meine Seite könnte damit wie folgt ausgegeben werden:

<?php
    $seite = get_page_by_title( 'Meine Seite', ARRAY_N );
    echo $seite[0];
?>

Ausgabe als assoziativer Array

Die letzte Möglichkeit für den zweiten Parameter ist der assoziative Array. Die ID der Seite mit dem Titel Meine Seite würde dann wie folgt ausgegeben werden:

<?php
    $seite = get_page_by_title( 'Meine Seite', ARRAY_A );
    echo $seite['ID'];
?>

Tabelle wp_posts

Natürlich lassen sich mit der Funktion get_page_by_title() auch andere Daten ausgeben. Besonders mit der Ausgabe als Objekt oder assoziativem Array ist es relativ leicht, darauf zuzugreifen. Eine Übersicht der zur Verfügung stehenden Daten kann im WordPress-Codex eingesehen werden.

Man könnte sich zum Beispiel die Anzahl der Kommentare damit wie folgt ausgeben lassen:

<?php
    $seite = get_page_by_title( 'Meine Seite' );
    echo $seite->comment_count;
?>

Neue Funktion get_page_id()

Wenn man die Funktion häufig und nicht den ganzen Datensatz sondern wirklich nur die ID benötigt und sich das Ganze noch einfacher machen möchte, kann man sich optional eine kleine Funktion schreiben und diese in der functions.php des Themes ablegen.

<?php
function get_page_id($page_name){
    $page = get_page_by_title($page_name);
    return $page->ID;
}
?>

Ich beschränke mit mit der Funktion auf einen Parameter (Titel der Seite) und verwende die Standardausgabe Objekt.

Diese Funktion verwende ich häufig in Verbindung mit Theme-Optionen, wo der Benutzer z. B. eine Seite aus einem Select-Dropdown auswählen kann, um optional einen Link unter einem Willkommenstext zu setzen. Dabei wird mir der Titel der Seite zurückgegeben.

Die ID erhalte ich mit der neuen Funktion get_page_id():

<?php
    $seiten_id = get_page_id( 'Meine Seite' );
?>

Um zum Beispiel einen Link mit einem Seitentitel zu generieren, kann ich meine neue Funktion in Kombination mit get_permalink() verwenden:

<a href="<?php echo get_permalink(get_page_id( 'Meine Seite' )); ?>">
    Meine Seite
</a>

Fazit

Man kann also mit WordPress-Boardmitteln und einer kleinen optionalen Erweiterung die ID einer Seite anhand ihres Titels sehr leicht herausfinden.

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

9 Kommentare

  • Markus
    3. November 2009

    danke für den tipp :)

  • Michael Oeser
    3. November 2009

    Hi Simon,

    gutes Tutorial. Sinnvoll wäre es jetzt noch, ganz konkrete Beispiele für die Verwendung aufzuzeigen.

    • Simon [webdemar]
      3. November 2009

      Da hast Du vielleicht Recht. Ich wollte den Artikel aber auch nicht überladen. Mit der Nutzung von get_permalink() ist ein solches Beispiel gegeben.

      • Stephan
        3. November 2009

        Sicher, für get_permalink() brauchst Du die Seiten-ID, aber was ich dann heraus bekomme ist doch nur der “Input”, den Du brauchst, um get_page_by_title() zu benutzen …

        Mir fehlt auch eine Idee, wozu die Funktion überhaupt einsetzbar wäre. Außer vielleicht im Bereich “Wordpress-eigenen Short-Links”, aber die ID steht ja innerhalb von “the Loop” eh bereit… ?

        • Simon [webdemar]
          3. November 2009

          Die Funktion get_page_id ist ein nützliches Helferlein… mehr nicht. Im Zusammenhang mit Theme-Optionen, Shortcodes und Widgets hat sie mir oft gute Dienste geleistet. Wenn Du nicht weißt, wofür Du die Funktion brauchen könntest, benötigst Du sie auch nicht ;-)

  • steffen
    9. November 2009

    hab mich gerade gefragt, warum dein beispiel nicht läuft, da fehlt ein ‘echo’ vor ‘get_permalink’. ansonsten gute sache, natürlich. kann ich gerade gut gebrauchen. danke.

  • bukmacher
    13. November 2009

    ein super tutorial,danke,gute job

  • Barbara
    14. November 2009

    Danke für diesen tollen Tipp. Diese Woche stand ich gerade vor diesem Problem. Habe mich dann durch die Datenbank gewurschtelt, um die IDs rauszufinden. Aber so gehts natürlich einfacher :)

1 Trackback

Kommentar schreiben

Dein Name hier
Dein Name hier
14. 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