web-dev-qa-db-fra.com

Définition du titre à l'aide du filtre wp_title

Je veux faire quelque chose de très simple, mais je suis coincé à trouver où, dans WordPress, j'ai besoin de le faire.

Lorsque quelqu'un sur mon site WordPress visite une page de publication, je souhaite que le titre de cette publication remplace le titre de la page.

Je pense que je peux le faire avec le hook de filtrage wp_title?

J'ai pensé à quelque chose comme ce qui suit: -

add_filter('wp_title', 'filter_pagetitle');

function filter_pagetitle($title) {
 $the_post_id    = get_the_ID();
 $the_post_data  = get_post($the_post_id);
 $title = $the_post_data->post_title;

 return $title;
}

Cependant, je suis un peu perdu quant à l'endroit où je l'ai mis, j'ai pensé que cela devrait être dans loop-single.php car je veux que cela ne s'applique qu'à des pages simples, mais j'ai aussi vu que cela devait être dans des fonctions. php dans mon thème?

Toute aide serait appréciée :-)

Riches

2
Richard Bagshaw

Wp_title () étant généralement appelé à partir du fichier header.php de votre thème, il s'exécute sur toutes les pages de votre WordPress (généralement en façade). Placez donc le crochet et la fonction de filtre dans le fichier functions.php de votre thème et vérifiez s’il s’agit bien d’un blog avant de changer le titre. Quelque chose comme ça:

add_filter('wp_title', 'filter_pagetitle');
function filter_pagetitle($title) {
    //check if its a blog post
    if (!is_single())
        return $title;

    //if you get here then its a blog post so change the title
    global $wp_query;
    if (isset($wp_query->post->post_title)){
        return $wp_query->post->post_title;
    }

    //if wordpress can't find the title return the default
    return $title;
}
3
Bainternet