web-dev-qa-db-fra.com

Limitations lors de la modification de wp_title avec un filtre

Lors de la construction de l'attribut HTML <title> dans un thème, j'ai trouvé qu'il y avait un crochet pratique pour modifier wp_title .

Cependant, un examen rapide des thèmes indique que l’utilisation de ce crochet n’est pas une pratique courante. En fait, si vous regardez TwentyEleven, vous verrez ceci dans header.php:

<title><?php
    /*
     * Print the <title> tag based on what is being viewed.
     */
    global $page, $paged;

    wp_title( '|', true, 'right' );

    // Add the blog name.
    bloginfo( 'name' );

    // Add the blog description for the home/front page.
    $site_description = get_bloginfo( 'description', 'display' );
    if ( $site_description && ( is_home() || is_front_page() ) )
        echo " | $site_description";

    // Add a page number if necessary:
    if ( $paged >= 2 || $page >= 2 )
        echo ' | ' . sprintf( __( 'Page %s', 'twentyeleven' ), max( $paged, $page ) );

?></title>

Il me semble que cela pourrait être repris dans functions.php et remplacé par:

(dans functions.php)

add_filter( 'wp_title', 'twentyeleven_title_filter' );

function twentyeleven_title_filter( $title ) {
    // All that title logic here
}

(dans header.php)

<title><?php wp_title(); ?></title>

Je suis assez nouveau dans le développement de thèmes, alors pardonnez-moi si cela est de notoriété publique - mais pourquoi ne pas simplement modifier wp_title dans le filtre plutôt que dans l'en-tête? Y a-t-il une limitation quelque part?

Il y a un peu de débat à propos de wp_title qui se passe dans ce ticket , mais d'après ce que je peux en déduire, il semble que le filtre fonctionne - am J'ai tort?

1
Andy Adams

Cela fait longtemps que je n'ai pas posé cette question et j'ai construit plusieurs thèmes au cours de cette période. La réponse que j'ai trouvée est "utiliser le filtre". Cela ne présente aucune limite et facilite grandement les tâches des autres développeurs, car ils doivent uniquement filtrer la sortie (au lieu d'essayer de mettre en mémoire tampon la sortie).

En bref, il suffit de le filtrer !

1
Andy Adams