Articles

Hur man får fram den aktuella sidtiteln i WordPress

Ibland vill vi få fram den aktuella sidtiteln, som visas i <title>-taggen. Här menar jag sidan i allmän mening, inte WordPress ”sida”. Vi har flera WordPress-funktioner som kan hjälpa till, till exempel:

  • get_the_title(): för att få aktuell post/page/any post type title
  • single_cat_title(): för att få aktuell kategorititel. Det finns också syskonfunktioner för taggar och termer: single_tag_title() och single_term_title()
  • get_bloginfo(): för att få fram bloggnamnet
  • etc.

Det är bra att använda dessa funktioner, men de har några nackdelar:

  • De här funktionerna är specifika för vissa sidor som enskilda inlägg/sida, kategori/tag, … sidor. Men vi kan ha många sidtyper i WordPress som: Du kan använda ett tema som har titeln i formatet Post Title | Blog Name, men ett annat tema kan endast använda Post Title. Du kan göra en kombination av funktionerna ovan för att uppnå rätt titel, men det kommer inte att användas i stor utsträckning för andra teman.
  • Och du kan ställa in titeln på olika sätt med SEO-plugins

I det här inlägget kommer jag att använda ett enkelt knep som kan lösa dessa problem snabbt.

Jag är säker på att vi alla känner till funktionen wp_title(), vi använder ofta den här funktionen i header.php-filen, så här:

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

för att visa sidans titel (du bör endast använda den här funktionen för att visa sidans titel, annars kanske din webbplats inte är kompatibel med SEO-plugins eller orsakar prestandaproblem).

Tricket är att byta den andra parametern $echo från true till false för att få värdet på den aktuella sidtiteln:

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

Här är ett exempel där denna teknik är användbar. Vi ska visa en Twitter-knapp. Jag kommer att använda en annan cool teknik för att få fram den aktuella sidans URL:

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 ));

Jag använder för närvarande skriptet ovan (med några tillägg för Facebook like, Google+ knappar) för mina webbplatser. Och det fungerar utmärkt på arkivsidor där inbyggda WordPress-funktioner inte är särskilt hjälpsamma.