Due tag title nell'header
Sto sviluppando un child theme e attualmente ha una sezione <head>
molto semplice nel file 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>
Presumo che wp_head()
sia responsabile del secondo elemento <title>
(appare proprio lì nell'HTML finale), ma altre fonti dicono che questo è impossibile.
Dovrei rimuovere il tag <title>
dal mio header.php, o dovrei aggiungere qualcosa alle mie funzioni per rimuovere il titolo da wp_head()
(es. remove_action('wp_head', 'title'
) ?
O dovrei fare qualcos'altro completamente diverso?
I due tag title possono essere spiegati dal fatto che stai utilizzando un tema scritto per WordPress 4.1 e in realtà stai usando la versione 4.1. A partire dalla 4.1 non è più necessario chiamare wp_title()
nell'header, puoi invece utilizzare il nuovo tag di supporto per il tema title_tag
che aggiunge automaticamente il tag wp_title()
nell'header.
Il tema genitore che stai utilizzando molto probabilmente lo fa già. Cerca nel tuo functions.php questa riga di codice:
add_theme_support( 'title-tag' );
Come soluzione, copia il file header.php
del tema genitore nel tuo tema child e semplicemente rimuovi la funzione wp_title()
dal file header.php
del tema child.
Ecco anche un'ottima funzione da tenere a mente per la compatibilità con le versioni precedenti e utile per gli sviluppatori di temi genitori: (Preso dal 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' );
}
