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()
ensingle_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 gebruikenPost 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.