Articles

Wie man den aktuellen Seitentitel in WordPress abruft

Manchmal wollen wir den aktuellen Seitentitel abrufen, der im <title> Tag angezeigt wird. Hier meine ich die Seite im allgemeinen Sinne, nicht die WordPress-„Seite“. Es gibt mehrere WordPress-Funktionen, die dabei helfen können, z.B.:

  • get_the_title(): um den aktuellen post/page/any post type title zu erhalten
  • single_cat_title(): um den aktuellen Kategorietitel zu erhalten. Es gibt auch Geschwisterfunktionen für Tags und Begriffe: single_tag_title() und single_term_title()
  • get_bloginfo(): um den Blog-Namen zu erhalten
  • etc.

Die Verwendung dieser Funktionen ist großartig, aber sie haben einige Nachteile:

  • Diese Funktionen sind spezifisch für bestimmte Seiten, wie z.B. einzelne Beiträge/Seiten, Kategorien/Tags, … Seiten. Aber wir können viele Seitentypen in WordPress haben wie: 404-Seite, Suchergebnisseite, Archivseite oder sogar virtuelle Seite.
  • Der Titel wird in verschiedenen Themes unterschiedlich angezeigt: Sie können ein Theme verwenden, das Titel im Format Post Title | Blog Name hat, aber ein anderes Theme kann nur Post Title verwenden. Sie können eine Kombination der oben genannten Funktionen machen, um den korrekten Titel zu erhalten, aber das wird für andere Themes nicht weit verbreitet sein.
  • Oder Sie könnten den Titel auf verschiedene Weise mit SEO-Plugins setzen

In diesem Beitrag werde ich einen einfachen Trick verwenden, der diese Probleme schnell lösen kann.

Ich bin mir sicher, dass jeder von uns mit der Funktion wp_title() vertraut ist, wir verwenden diese Funktion oft in der Datei header.php, wie zum Beispiel so:

<title><?php wp_title( '|', true, 'right' ); ?></title>

um den Seitentitel anzuzeigen (Sie sollten nur diese Funktion verwenden, um den Seitentitel anzuzeigen, andernfalls ist Ihre Website möglicherweise nicht mit SEO-Plugins kompatibel oder verursacht Leistungsprobleme).

Der Trick besteht darin, den zweiten Parameter $echo von true auf false zu ändern, um den Wert des aktuellen Seitentitels zu erhalten:

$title = wp_title( '|', false, 'right' );

Hier ist ein Beispiel, wo diese Technik nützlich ist. Wir werden eine Twitter-Schaltfläche anzeigen. Ich werde eine andere coole Technik verwenden, um die aktuelle Seiten-URL zu erhalten:

global $wp;$link = add_query_arg( $wp->query_string, '', home_url( $wp->request ) );$text = wp_title( '|', false );printf( '<iframe allowtransparency="true" frameborder="0" scrolling="no" src="https://platform.twitter.com/widgets/tweet_button.html?url=%s&text=%s&count=horizontal"></iframe>', urlencode( $link ), rawurlencode( $text ));

Ich verwende derzeit das obige Skript (mit einigen Ergänzungen für Facebook-Like- und Google+-Schaltflächen) für meine Websites. Und es funktioniert hervorragend auf Archivseiten, wo die eingebauten WordPress-Funktionen nicht sehr hilfreich sind.