web-dev-qa-db-fra.com

Lorsque vous appelez wp_title (), devez-vous créer une sorte de fichier "title.php"?

... ou wp_title() gère-t-il déjà les divers contextes de votre blog?

Cela pourrait clarifier pour moi comment créer un fichier index.php réutilisable sans avoir toutes les instructions conditionnelles à l'intérieur pour gérer les différents formats de titre dans le contexte donné (page, single, posts, recherche, archive, date, etc.).

Également,

Un article ou une page spécifique pourrait-il avoir une mise en forme personnalisée sans briser le reste des cas d'utilisation? ( Si cela doit faire l’objet d’une question distincte, merci de me le faire savoir - c’est étroitement lié à cette question, j’ai donc pensé que je le fusionnerais ici pour le moment ).

2
bigp

La balise de modèle wp_title() does some sortie basée sur le contexte. Du Codex:

Le texte du titre dépend de la requête:

Poste unique ou une page

  • le titre de l'article (ou la page)

Archive datée

  • la date (par exemple, "2006", "2006 - janvier")

Catégorie

  • le nom de la catégorie

Page de l'auteur

  • le nom public de l'utilisateur

Si vous devez ajouter une sortie contextuelle plus spécifique, vous pouvez utiliser le wp_title filter hook pour modifier la sortie.

Par exemple, si vous souhaitez ajouter le nom de site au début de la sortie:

<?php
function mytheme_filter_wp_title( $title ) {
    // Get the Site Name
    $site_name = get_bloginfo( 'name' );
    // Prepend it to the default output
    $filtered_title = $site_name . $title;
    // Return the modified title
    return $filtered_title;
}
// Hook into 'wp_title'
add_filter( 'wp_title', 'mytheme_filter_wp_title' );
?>

En prenant un exemple de la page Codex, disons que vous souhaitez ajouter le description du site à la sortie du titre lorsque vous vous trouvez sur la page d'accueil du site:

<?php
function mytheme_filter_wp_title( $title ) {
    // Get the Site Name
    $site_name = get_bloginfo( 'name' );
    // Prepend name
    $filtered_title = $site_name . $title;
    // If site front page, append description
    if ( is_front_page() ) {
        // Get the Site Description
        $site_description = get_bloginfo( 'description' );
        // Append Site Description to title
        $filtered_title .= $site_description;
    }
    // Return the modified title
    return $filtered_title;
}
// Hook into 'wp_title'
add_filter( 'wp_title', 'mytheme_filter_wp_title' );
?>

Modifiez en conséquence, selon vos besoins.

Au cas où cela ne serait pas évident, ces rappels de filtre appartiennent à functions.php.

EDIT

A raté ceci:

Un article ou une page spécifique pourrait-il avoir une mise en forme personnalisée sans briser le reste des cas d'utilisation?

C'est tout à fait possible. En fait, c'est ainsi que fonctionnent la plupart des plug-ins SEO.

Voici comment utiliser le filtre wp_title pour contrôler la sortie de wp_title():vous avez intégré la possibilité de bien jouer avec les plug-ins SEO et avec tout ce qui tente de modifier le contenu de wp_title(), sans modification supplémentaire du code. Champs obligatoires.

3
Chip Bennett

Corrigez-moi si je me trompe, mais je ne pense pas qu'il existe une méthode "propre" de créer des titres sans utiliser de condition. En ce qui concerne le titre par page, vous pouvez créer un méta-champ personnalisé et en vérifier la présence lors de la sortie de votre titre.

0
Joseph Leedy