В WordPress заголовок страницы — один из ключевых элементов SEO и удобства пользователей. Иногда возникает необходимость динамически менять заголовок в зависимости от условий, например, типа страницы, параметров запроса или пользовательских данных. В этой статье подробно разберём, как программно изменять заголовок страницы, а также рассмотрим полезные плагины и практические примеры кода.
Почему важно управлять заголовком страницы в WordPress
Заголовок влияет на позиционирование сайта в поисковых системах и конверсию посетителей. Статические заголовки часто не подходят для сложных сайтов с динамическим контентом. Правильное управление заголовком позволяет:
- Улучшить SEO за счёт точного описания содержимого страницы.
- Повысить удобство пользователя за счёт информативности заголовка.
- Динамически адаптировать заголовок под разные параметры, например, фильтры товаров.
WordPress по умолчанию генерирует заголовок на основе шаблонов темы и плагинов SEO, но при необходимости можно задать собственные правила.
Использование фильтра wpmy_filter_document_title для динамического изменения заголовка
В WordPress 4.4+ для изменения заголовка используется фильтр document_title_parts. Мы создадим собственную функцию wpmy_change_document_title, которая будет менять заголовок в зависимости от условий.
function wpmy_change_document_title($title_parts) {
if (is_singular('post')) {
// Добавим к заголовку поста текст
$title_parts['title'] .= ' – Полезная статья на WPMy.ru';
} elseif (is_category()) {
$cat = get_queried_object();
$title_parts['title'] = 'Категория: ' . $cat->name . ' | WPMy.ru';
} elseif (is_home()) {
$title_parts['title'] = 'Блог WPMy – последние новости и советы';
}
return $title_parts;
}
add_filter('document_title_parts', 'wpmy_change_document_title');Данный код добавит дополнительные слова к заголовкам постов, категорий и главной страницы. Это простой способ улучшить SEO без изменения шаблонов.
Как проверить работу фильтра
Чтобы увидеть результат, откройте любую запись или категорию на сайте и посмотрите заголовок вкладки браузера. Изменения должны примениться мгновенно.
Динамический заголовок в классической теме с использованием wp_title
Для совместимости со старыми темами, которые используют функцию wp_title, можно применить следующий фильтр:
function wpmy_filter_wp_title($title, $sep) {
if (is_category()) {
$title = 'Категория: ' . single_cat_title('', false) . ' ' . $sep . ' WPMy.ru';
} elseif (is_singular('page')) {
$title = get_the_title() . ' ' . $sep . ' WPMy.ru';
}
return $title;
}
add_filter('wp_title', 'wpmy_filter_wp_title', 10, 2);Этот способ подходит, если тема не поддерживает title-tag и использует устаревший метод формирования заголовков.
Использование плагинов для управления заголовком страницы
Если вы не хотите писать код, можно использовать плагины, которые предоставляют гибкий интерфейс для управления заголовками.
Yoast SEO
Классический и мощный плагин для SEO, который позволяет задавать шаблоны заголовков для разных типов страниц, категорий и так далее. В настройках плагина можно задать динамические переменные, например, название категории, текущую дату и другие.
Clearfy Pro
Плагин оптимизации сайта, в числе функций которого есть управление тегом title. Можно легко отключить лишние элементы, а также задать свои шаблоны заголовков. Подробнее о Clearfy Pro — на сайте WPSHOP.
SEO Press
Еще один популярный плагин, который предлагает настройку шаблонов заголовков и описаний без необходимости писать код. Поддерживает динамические параметры и мультисайты.
Динамический заголовок для страниц с параметрами GET
Иногда нужно менять заголовок в зависимости от параметров URL, например, для фильтров или поиска.
function wpmy_dynamic_title_by_query_vars($title_parts) {
if (isset($_GET['filter'])) {
$filter = sanitize_text_field($_GET['filter']);
$title_parts['title'] = 'Результаты фильтра: ' . $filter . ' | WPMy.ru';
}
return $title_parts;
}
add_filter('document_title_parts', 'wpmy_dynamic_title_by_query_vars');Таким образом, если пользователь откроет страницу с ?filter=новинки, заголовок будет «Результаты фильтра: новинки | WPMy.ru».
Использование пользовательского поля для заголовка
Для отдельных страниц или записей можно задать заголовок через кастомное поле, что удобно для уникального SEO.
function wpmy_title_from_custom_field($title_parts) {
if (is_singular()) {
global $post;
$custom_title = get_post_meta($post->ID, 'wpmy_custom_title', true);
if (!empty($custom_title)) {
$title_parts['title'] = $custom_title;
}
}
return $title_parts;
}
add_filter('document_title_parts', 'wpmy_title_from_custom_field');В админке записи добавьте кастомное поле wpmy_custom_title с нужным заголовком, и он отобразится на фронте.
Полезные советы и рекомендации
- Всегда используйте фильтры WordPress для изменения заголовков, не меняйте напрямую шаблоны, чтобы сохранить совместимость.
- Сохраняйте уникальность заголовков для каждой страницы — это улучшает SEO.
- Для крупных проектов используйте плагины с поддержкой шаблонов и динамических переменных.
- Перед публикацией проверяйте заголовки через инструменты анализа SEO.
Динамическое управление заголовками — мощный инструмент для улучшения сайта и SEO. Используя приведённые методы и примеры, вы сможете гибко настраивать отображение заголовков под любые задачи.