Două tag-uri de titlu în header
În prezent construiesc un child theme și am o secțiune <head> foarte simplă în 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>
Presupun că wp_head() este responsabil pentru al doilea element <title> (apare exact acolo în HTML-ul final), dar alte surse spun că acest lucru este imposibil.
Ar trebui să elimin tag-ul <title> din header.php, sau să adaug ceva în functions.php pentru a elimina titlul din wp_head() (de ex. remove_action('wp_head', 'title') ?
Sau ar trebui să fac altceva cu totul?
Cele două tag-uri de titlu pot fi explicate prin faptul că utilizați o temă care este scrisă pentru WordPress 4.1 și de fapt folosiți versiunea 4.1. Începând cu versiunea 4.1, nu mai este necesar să apelați wp_title() în head, puteți utiliza noul tag de suport pentru temă title_tag care adaugă automat tag-ul wp_title() în header.
Tema părinte pe care o utilizați face probabil deja acest lucru. Căutați în fișierul functions.php următoarea linie de cod:
add_theme_support( 'title-tag' );
Ca soluție, copiați fișierul header.php din tema părinte în tema copil și pur și simplu eliminați funcția wp_title() din fișierul header.php al temei copil.
Iată și o funcție utilă de reținut pentru compatibilitate inversă și este folositoare pentru dezvoltatorii de teme părinte: (Preluat din 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' );
}