Je construis un thème enfant et il a actuellement une très simple section <head>
dans header.php:
<head>
<meta charset="<?php bloginfo( 'charset' ); ?>">
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
<title><?php wp_title( '|', true, 'right' ); ?></title>
<link rel="profile" href="http://gmpg.org/xfn/11">
<link rel="pingback" href="<?php bloginfo( 'pingback_url' ); ?>">
<!--[if lt IE 9]>
<script type="text/javascript" src="<?php echo get_template_directory_uri(); ?>/js/html5shiv.min.js"></script>
<![endif]-->
<?php wp_head(); ?>
</head>
J'imagine que wp_head()
est responsable du deuxième élément <title>
(il apparaît juste là dans le code HTML final), mais d'autres choses que j'ai lues disent que c'est impossible.
Devrais-je supprimer le <title>
de mon header.php ou devrais-je ajouter quelque chose à mes fonctions pour supprimer le titre de wp_head()
(par exemple, remove_action('wp_head', 'title'
)?
Ou devrais-je faire autre chose?
Les deux balises de titre peuvent être expliquées comme si vous utilisiez un thème écrit pour Wordpress4.1 et utilisant en réalité 4.1. À partir de la version 4.1, vous n'avez plus besoin d'appeler wp_title()
en tête, vous pouvez utiliser la nouvelle balise de support de thème title_tag
qui ajoute automatiquement la balise wp_title()
dans l'en-tête.
Le thème parent que vous utilisez le fait probablement déjà. Regardez dans votre functions.php pour cette ligne de code
add_theme_support( 'title-tag' );
Comme solution, copiez le thème parent header.php
dans votre thème enfant et supprimez simplement la fonction wp_title()
du thème enfant header.php
.
Voici également une excellente fonction à garder à l’esprit pour la compatibilité ascendante et qui est utile pour les développeurs de thèmes parents: ( Extrait du codex )
if ( ! function_exists( '_wp_render_title_tag' ) ) {
function theme_slug_render_title()
{
?>
<title>
<?php wp_title( '|', true, 'right' ); ?>
</title>
<?php
}
add_action( 'wp_head', 'theme_slug_render_title' );
}