Comment définir le titre de la page de manière dynamique?

10

Est-il possible de changer le titre de la page avec un code?

Par exemple, supposons que le nom de la page soit "Réservez votre commande", mais je souhaite le modifier en "Commande au carnet n ° 123".

Je Google un peu et regardé ici et n'a rien vu. Quelqu'un connait-il un plugin ou un hack?

wp_title retourne le titre de la page mais ne permet pas de définir le titre de la page: enlace

    
posée Alex Cook 07.11.2011 - 19:40

5 réponses

18

Il n'y a pas de documentation dessus mais vous pouvez toujours appliquer un filtre à the_title comme ceci:

add_filter('the_title','some_callback');
function some_callback($data){
    global $post;
    // where $data would be string(#) "current title"
    // Example:
    // (you would want to change $post->ID to however you are getting the book order #,
    // but you can see how it works this way with global $post;)
    return 'Book Order #' . $post->ID;
}

Voir ceux-ci:

enlace

enlace

    
réponse donnée Jared 07.11.2011 - 19:55
3

Pour ceux qui souhaitent modifier l'attribut title du document, j'ai constaté que l'utilisation du filtre wp_title ne fonctionnait plus. Au lieu de cela, utilisez le le filtre pre_get_document_title :

add_filter("pre_get_document_title", "my_callback");
function my_callback($old_title){
    return "My Modified Title";
}

Source

    
réponse donnée Nathan Arthur 12.08.2018 - 21:41
2

Cela dépend vraiment si vous souhaitez afficher un titre personnalisé pour la page actuelle (c'est-à-dire le contenu de la balise <title></title> dans l'en-tête) ou filtrer le titre des pages dans le corps de la page ou dans les listes.

Dans le premier cas (le titre de la page en cours), essayez d’ajouter un filtre pour wp_title() comme suit: enlace

Si vous souhaitez modifier le titre des pages dans son ensemble, filtrer the_title() fera l'affaire: enlace

    
réponse donnée nickb 15.12.2013 - 23:32
1

À partir de Wordpress 4.4, vous pouvez utiliser le filtre Wordpress document_title_parts pour changer le titre.

add_filter('document_title_parts', 'my_custom_title');
function my_custom_title( $title ) {
  // $title is an array of title parts, including one called 'title'

  $title['title'] = 'My new title';

  if (is_singular('post')) {
    $title['title'] = 'Fresh Post: ' . $title['title'];
  }

  return $title;
}
    
réponse donnée Brendan Nee 15.11.2018 - 03:46
0

Vous souhaitez donc modifier le titre par page? Tout d'abord configurer un poste personnalisé a rencontré une boîte. Smashing Magazine a récemment couvert ce sujet: enlace . Vous pouvez ensuite créer une fonction simple pour remplacer le titre si la méta-boîte personnalisée a une valeur.

Plusieurs plug-ins SEO offrent également cette fonctionnalité. Essayez par exemple Yoast SEO: enlace

J'espère que cela vous aidera.

    
réponse donnée Chris Mooney 08.11.2011 - 01:01

Lire d'autres questions sur les étiquettes