Articles

How To Get Current Page Title In WordPress

Soms willen we de huidige pagina titel, die wordt weergegeven in <title> tag. Hier bedoel ik de pagina in algemene zin, niet WordPress “pagina”. We hebben verschillende WordPress functies die kunnen helpen, zoals:

  • get_the_title(): om de huidige post/page/een post type titel te krijgen
  • single_cat_title(): om de huidige categorie titel te krijgen. Er zijn ook verwante functies voor tags en termen: single_tag_title() en single_term_title()
  • get_bloginfo(): om de blognaam te krijgen
  • enz.

Het gebruik van deze functies is geweldig, maar ze hebben een aantal nadelen:

  • Deze functies zijn specifiek voor bepaalde pagina’s zoals enkele post/pagina, categorie/tag, … pagina’s. Maar we kunnen vele pagina types hebben in WordPress zoals: 404 pagina, zoekresultaten pagina, archief pagina, of zelfs virtuele pagina.
  • De titel verschillend weergegeven in thema’s: u kunt een thema dat titel in het formaat Post Title | Blog Name hebben, maar een ander thema kan gebruiken Post Title alleen. U kunt een combinatie van de bovenstaande functies maken om de juiste titel te krijgen, maar dat zal niet veel worden gebruikt voor andere thema’s.
  • Of u kunt de titel op verschillende manieren instellen met SEO plugins

In deze post, ga ik een eenvoudige truc gebruiken die deze problemen snel kan oplossen.

Ik weet zeker dat we allemaal bekend zijn met functie wp_title(), we gebruiken deze functie vaak in header.php bestand, zoals deze:

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

om de paginatitel weer te geven (u moet alleen deze functie gebruiken om de paginatitel weer te geven, anders is uw site misschien niet compatibel met SEO plug-ins of veroorzaakt het prestatieproblemen).

De truc is om de 2e parameter $echo te veranderen van true in false om de waarde van de huidige paginatitel te krijgen:

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

Hier volgt een voorbeeld waar deze techniek nuttig is. We gaan een Twitter knop weergeven. Ik ga een andere coole techniek gebruiken om de URL van de huidige pagina te krijgen:

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

Ik gebruik momenteel het bovenstaande script (met wat toevoegingen voor Facebook like, Google+ knoppen) voor mijn websites. En het werkt geweldig in archief pagina’s waar de ingebouwde WordPress functies niet erg behulpzaam zijn.