Articles

Comment obtenir le titre actuel de la page dans WordPress

Parfois nous voulons obtenir le titre actuel de la page, qui est affiché dans la balise <title>. Ici, je parle de la page au sens général, et non de la  » page  » de WordPress. Nous avons plusieurs fonctions WordPress qui peuvent nous aider comme:

  • get_the_title() : pour obtenir le titre actuel de l’article/page/tout type d’article
  • single_cat_title() : pour obtenir le titre actuel de la catégorie. Il y a des fonctions sibling pour les balises et les termes aussi : single_tag_title() et single_term_title()
  • get_bloginfo() : pour obtenir le nom du blog
  • etc.

L’utilisation de ces fonctions est géniale, mais elles ont quelques inconvénients:

  • Ces fonctions sont spécifiques à des pages particulières comme les pages single post/page, category/tag, …. Mais nous pouvons avoir de nombreux types de pages dans WordPress comme : Page 404, page de résultat de recherche, page d’archive, ou même page virtuelle.
  • Le titre affiché différemment dans les thèmes : vous pouvez utiliser un thème qui a un titre au format Post Title | Blog Name, mais un autre thème peut utiliser Post Title seulement. Vous pouvez faire une combinaison des fonctions ci-dessus pour obtenir le titre correct, mais cela ne sera pas largement utilisé pour d’autres thèmes.
  • Ou vous pourriez définir le titre de diverses manières avec des plugins SEO

Dans ce post, je vais utiliser une astuce simple qui peut résoudre ces problèmes rapidement.

Je suis sûr que nous sommes tous familiers avec la fonction wp_title(), nous utilisons souvent cette fonction dans le fichier header.php, comme ceci:

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

pour afficher le titre de la page (vous devez utiliser uniquement cette fonction pour afficher le titre de la page, sinon votre site peut-être pas compatible avec les plugins SEO ou provoque un problème de performance).

L’astuce consiste à passer le 2e paramètre $echo de true à false pour obtenir la valeur du titre de la page actuelle :

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

Voici un exemple où cette technique est utile. Nous allons afficher un bouton Twitter. Je vais utiliser une autre technique cool pour obtenir l’URL de la page actuelle:

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

J’utilise actuellement le script ci-dessus (avec quelques ajouts pour les boutons Facebook like, Google+) pour mes sites web. Et il fonctionne très bien dans les pages d’archives où les fonctions intégrées de WordPress ne sont pas très utiles.