aleks24On 24.09.2023 15:27

Как изменить заголовок страницы (тег 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' );
?>

Я ожидаю, что при просмотре страницы с постом, в заголовке страницы будет отображаться название этого поста. Но вместо этого, заголовок остается неизменным. Что я делаю не так?

Благодарю за помощь!

Ответы:

TimActivist40 24.09.2023 15:31

Ваш пример кода выглядит практически правильным, однако есть некоторые изменения, которые нужно внести, чтобы он работал должным образом.

Во-первых, начиная с 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() и использовали правильное условие, ваш заголовок страницы будет динамически меняться в соответствии с названием текущей записи.

Надеюсь, это поможет! Если у вас возникнут еще вопросы, не стесняйтесь задавать.


Добавить ответ