В WordPress заголовки страниц играют ключевую роль не только для пользователей, но и для поисковых систем. Иногда возникает необходимость программно изменить заголовки, не редактируя напрямую шаблоны темы, чтобы сохранить совместимость с обновлениями и плагинами. В этом материале мы рассмотрим, как изменить заголовки страниц через хуки WordPress, используя практические примеры кода.
Почему важно управлять заголовками через хуки в WordPress
В WordPress основная функция, отвечающая за заголовок страницы, это wp_title (устаревшая) и более современный фильтр document_title_parts. Использование хуков позволяет централизованно менять заголовки без изменения исходных файлов темы, что облегчает обновления и снижает риск поломок.
Кроме того, правильное управление заголовками важно для SEO: корректный title помогает поисковым системам лучше индексировать страницы и повышать их ранжирование.
Мы рассмотрим оба метода, с упором на современный — фильтр document_title_parts.
Использование фильтра document_title_parts для изменения заголовков
Фильтр document_title_parts позволяет модифицировать отдельные части заголовка, такие как название сайта, описание и заголовок текущей страницы.
Пример базового кода для изменения заголовка всех страниц:
add_filter('document_title_parts', 'wpcorp_modify_document_title_parts', 10, 1);
function wpcorp_modify_document_title_parts($title_parts) {
if (is_singular('post')) {
// Добавляем префикс к заголовку поста
$title_parts['title'] = 'Статья: ' . $title_parts['title'];
}
return $title_parts;
}В этом примере мы добавляем слово «Статья:» перед заголовком поста. Такой подход удобен для кастомизации заголовков в зависимости от типа контента.
Изменение заголовка для главной страницы
Часто требуется изменить заголовок главной страницы отдельно. Для этого используем условный тег is_front_page():
add_filter('document_title_parts', 'wpcorp_front_page_title', 10, 1);
function wpcorp_front_page_title($title_parts) {
if (is_front_page()) {
$title_parts['title'] = 'Добро пожаловать на сайт WP Corp';
// Можно изменить и название сайта
$title_parts['site'] = 'WP Corp';
// Удаляем описание
unset($title_parts['tagline']);
}
return $title_parts;
}Так вы получите уникальный заголовок для главной страницы, который не зависит от настроек темы.
Использование фильтра wp_title для совместимости с устаревшими темами
Если ваша тема не поддерживает document_title_parts, можно использовать старый фильтр wp_title. Он менее гибкий, но до сих пор актуален для многих проектов.
add_filter('wp_title', 'wpcorp_modify_wp_title', 10, 2);
function wpcorp_modify_wp_title($title, $sep) {
if (is_category()) {
$title = 'Категория: ' . single_cat_title('', false) . " $sep " . get_bloginfo('name');
}
return $title;
}Здесь мы изменяем заголовок для страниц категорий, добавляя префикс «Категория:».
Пример решения: динамические заголовки для пользовательских типов записей
Если на сайте используются кастомные типы записей (Custom Post Types), заголовки для них тоже можно менять через document_title_parts. Рассмотрим пример для типа записи product:
add_filter('document_title_parts', 'wpcorp_custom_post_type_title', 10, 1);
function wpcorp_custom_post_type_title($title_parts) {
if (is_singular('product')) {
$product_id = get_the_ID();
$custom_label = get_post_meta($product_id, '_wpcorp_product_label', true);
if ($custom_label) {
$title_parts['title'] = $custom_label . ' – ' . $title_parts['title'];
}
}
return $title_parts;
}В этом примере к заголовку продукта добавляется метка из метаполя _wpcorp_product_label. Это позволяет гибко управлять SEO-заголовками для товаров или других кастомных записей.
Плагины для управления заголовками и SEO, которые можно использовать
Для более продвинутого управления заголовками и SEO советуем обратить внимание на следующие плагины:
- Yoast SEO — самый популярный SEO-плагин, который позволяет настроить шаблоны заголовков для всех типов страниц через интерфейс.
- All in One SEO Pack — альтернатива Yoast с похожими функциями.
- Clearfy Pro — плагин оптимизации и управления WordPress, который среди прочего позволяет тонко настраивать заголовки и мета-теги. Подробнее о нем можно узнать на официальной странице.
Советы по SEO при изменении заголовков через хуки
Изменяя заголовки, стоит помнить:
- Сохраняйте уникальность заголовков для каждой страницы.
- Включайте ключевые слова, релевантные содержимому.
- Не делайте заголовки слишком длинными — оптимально до 60 символов.
- Используйте условные теги, чтобы управлять заголовками по типу страницы.
Также важно тестировать изменения в различных браузерах и проверять, как они отображаются в поисковой выдаче.
Как интегрировать изменение заголовков с темами WPShop
Темы, такие как Reboot и Root, поддерживают современный фильтр document_title_parts. Поэтому код из примеров будет работать с ними без доработок. Если используете кастомные шаблоны, проверьте, чтобы в header.php была функция wp_head(), которая отвечает за вывод заголовка.
Выводы и практические рекомендации
Изменение заголовков через хуки — лучший способ гибко управлять SEO и UX вашего сайта на WordPress. Используйте фильтр document_title_parts для современных тем и добавляйте логику через условные теги. Для устаревших тем подойдет wp_title.
Для упрощения и расширения функционала можно подключать SEO-плагины, например, Clearfy Pro, который отлично интегрируется с WPShop и позволяет настраивать заголовки без кода.