web-dev-qa-db-fra.com

Comment puis-je supprimer le titre du site ou de la page d'accueil de tous les titres de page?

Après avoir opté pour un autre thème wordpress, Google a commencé à ajouter un nom de site à TOUS les titres de page dans les résultats de recherche.

Par exemple.:

"Titre de la page - Nom du site"

Même en laissant vide la zone du nom de site, Google ajoute toujours le titre de la page d'accueil à côté de chaque page. Cela a commencé seulement après que je sois passé à mon nouveau thème wordpress actuel.

J'utilise le plugin Yoast SEO et j'ai même essayé de supprimer "%% sep %% %% sitename %%" dans les paramètres, mais cela ne fonctionne toujours pas.

J'ai contacté le développeur du thème, voici sa réponse:

"Le thème ne définit aucun titre personnalisé. Il utilise par défaut add_theme_support ('title-tag'); les fonctions wordpress et Seo by Yoast fonctionnent avec cela."

Comment puis-je supprimer le nom de site? Dois-je changer le code header.php? Si non, quel code dois-je éditer?

2
john

Par défaut, WordPress utilise _wp_render_title_tag pour accrocher wp_head (voir ici )

add_action( 'wp_head', '_wp_render_title_tag', 1 );

Cette fonction encapsule wp_get_document_title pour afficher la balise de titre sur le thème si add_theme_support( 'title-tag' ); est ajouté dans le fichier de thème functions.php (généralement). https://core.trac.wordpress.org/browser/tags/4.4.2/src/wp-includes/general-template.php#L944 }

Si vous voyez le filtre document_title_parts sur la fonction wp_get_document_title() , nous pouvons filtrer les paramètres utilisés dans le titre (title, page, tagline, site).

Supposons que si nous avons besoin de supprimer le titre du nom de site de la page d’accueil et de la publication unique , il vous suffit de désélectionner les paramètres title et site avec balises conditionnelles , ici le code exemple (ajouter dans functions.php fichier de thème):

add_filter( 'document_title_parts', function( $title )
{
    if ( is_home() || is_front_page() )
        unset( $title['title'] ); /** Remove title name */

    if ( is_single() )
        unset( $title['site'] ); /** Remove site name */

    return $title;

}, 10, 1 );

À propos de votre problème dans l'indexation de Google, il est hors sujet ici.

4
Jevuska

Dans votre header.php, vous devrez peut-être remplacer:

<title><?php whatever code you find in your existing theme ?></title>

avec:

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

Assurez-vous de faire une copie en premier afin de pouvoir revenir si vous en avez besoin!

0
Monkey Puzzle