Как изменить заголовок страницы (тег title) в WordPress?
Здравствуйте! У меня возникла проблема с изменением заголовка страницы (тег title) в WordPress. Я хочу вставить динамический заголовок, который будет меняться в зависимости от контента страницы. Например, у меня есть страница с информацией о товаре, и я хочу, чтобы в заголовке отображалось название этого товара. Я понимаю, что нужно использовать функцию wp_title(), но у меня не получается правильно её применить.
Можете, пожалуйста, помочь мне разобраться в этом вопросе? Вот пример кода, который у меня не работает:
<?php
function my_custom_title( $title ) {
if ( is_single() ) {
global $post;
$title = $post->post_title;
}
return $title;
}
add_filter( 'wp_title', 'my_custom_title' );
?>
Я ожидаю, что при просмотре страницы с постом, в заголовке страницы будет отображаться название этого поста. Но вместо этого, заголовок остается неизменным. Что я делаю не так?
Благодарю за помощь!
Ответы:
Ваш пример кода выглядит практически правильным, однако есть некоторые изменения, которые нужно внести, чтобы он работал должным образом.
Во-первых, начиная с WordPress 4.4, функция wp_title() была заменена на функцию add_theme_support(), которая рекомендуется использовать для настройки заголовка страницы. Поэтому вам нужно заменить:
add_filter( 'wp_title', 'my_custom_title' );
на:
add_theme_support( 'title-tag' );
Во-вторых, если вы хотите изменить заголовок страницы только для записей (постов), вам нужно использовать функцию is_singular() вместо is_single(). Функция is_singular() позволяет проверить, является ли текущая страница отдельной записью (постом), страницей или пользовательским типом записи.
Итак, вот как должна выглядеть ваша функция:
function my_custom_title( $title ) {
if ( is_singular() ) {
global $post;
$title = $post->post_title;
}
return $title;
}
add_theme_support( 'title-tag' );
add_filter( 'pre_get_document_title', 'my_custom_title' );
Теперь, когда вы добавили функцию add_theme_support() и использовали правильное условие, ваш заголовок страницы будет динамически меняться в соответствии с названием текущей записи.
Надеюсь, это поможет! Если у вас возникнут еще вопросы, не стесняйтесь задавать.