Два тега title в заголовке WordPress
Я создаю дочернюю тему, и в настоящее время в header.php у меня очень простой раздел <head>
:
<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>
Я предполагаю, что wp_head()
отвечает за второй тег <title>
(он появляется прямо там в итоговом HTML), но другие источники утверждают, что это невозможно.
Должен ли я удалить тег <title>
из своего header.php, или мне нужно добавить что-то в functions.php, чтобы удалить title из wp_head()
(например, remove_action('wp_head', 'title'
)?
Или мне нужно сделать что-то совсем другое?
Два тега title могут появиться из-за того, что вы используете тему, написанную для WordPress 4.1, но работаете на версии 4.1 или выше. Начиная с версии 4.1, вам не нужно вызывать wp_title()
в секции head, вместо этого можно использовать новую функцию поддержки темы title_tag
, которая автоматически добавляет тег wp_title()
в заголовок.
Родительская тема, которую вы используете, скорее всего, уже делает это. Проверьте файл functions.php на наличие следующей строки кода:
add_theme_support( 'title-tag' );
В качестве решения скопируйте файл header.php
из родительской темы в вашу дочернюю тему и просто удалите функцию wp_title()
из header.php
дочерней темы.
Также стоит помнить о полезной функции для обратной совместимости, которая пригодится разработчикам родительских тем: (Взято из 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' );
}
