Bogdana27 11.03.2023 03:45

Как настроить автоматическую генерацию динамических заголовков страниц на WordPress-сайте?

Здравствуйте! У меня возникла проблема с настройкой автоматической генерации динамических заголовков страниц на моем сайте WordPress. Я хотел бы, чтобы заголовки каждой страницы автоматически формировались из имени страницы и некоторых других данных. Я пробовала использовать функцию wp_title(), но у меня не получилось ее правильно настроить под свои нужды. Вот пример кода, который я использовала:

function custom_title($title, $sep) {
    global $post;
    $custom_title = "";
    
    if (is_home() || is_front_page()) {
        $custom_title = "Добро пожаловать на наш сайт";
    } elseif (is_singular('post')) {
        $custom_title = $post->post_title . " - Наш блог";
    } elseif (is_singular('page')) {
        $custom_title = $post->post_title . " - " . get_bloginfo('name');
    }
    
    return $custom_title . $sep . get_bloginfo('name');
}
add_filter('wp_title', 'custom_title', 10, 2);
Я хотела бы узнать, как правильно настроить функцию wp_title(), чтобы она генерировала заголовки страниц с учетом названия страницы и других данных, указанных в примере кода выше. Буду благодарна за любую помощь или совет! Спасибо!

Ответы:

regasolov20 11.03.2023 04:08
Для настройки функции wp_title() и генерации заголовков страниц с учетом названия страницы и других данных, указанных в примере кода выше, вам потребуется внести некоторые изменения в код. В вашем примере кода вы уже использовали функцию wp_title() внутри своей пользовательской функции custom_title(). Однако, чтобы функция wp_title() работала должным образом, вам необходимо добавить код поддержки в вашей теме WordPress. В первую очередь, вам нужно добавить следующую строку кода в файл functions.php вашей темы:

add_theme_support('title-tag');
Этот код добавляет поддержку заголовков страницы для вашей темы WordPress. Затем, вы можете использовать wp_title() внутри вашего пользовательского кода. Однако, в вашем коде есть некоторые проблемы. Во-первых, вы используете функцию is_home(), которая проверяет, является ли страница главной страницей вашего сайта. Если вы хотите генерировать заголовки для отдельных страниц, то функцию is_home() нужно заменить на is_front_page() - она проверяет, является ли текущая страница главной страницей. Кроме того, в вашем коде использованы функции is_singular('post') и is_singular('page'), которые проверяют, является ли текущая страница записью блога или страницей соответственно. Если вам нужно сгенерировать заголовки для других типов записей, вы должны использовать их slug (идентификатор) вместо 'post' и 'page'. Вот исправленный код с учетом всех изменений:

function custom_title($title, $sep) {
    global $post;
    $custom_title = "";
    
    if (is_front_page()) {
        $custom_title = "Добро пожаловать на наш сайт";
    } elseif (is_singular('post')) {
        $custom_title = $post->post_title . " - Наш блог";
    } elseif (is_singular('page')) {
        $custom_title = $post->post_title . " - " . get_bloginfo('name');
    }
    
    return $custom_title . $sep . get_bloginfo('name');
}
add_filter('wp_title', 'custom_title', 10, 2);
После внесения этих изменений ваша функция custom_title() будет генерировать заголовки страниц с учетом имени страницы и других данных, указанных в коде. Удачи вам! Если у вас есть еще вопросы, не стесняйтесь задавать.

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