Динамический заголовок страницы — один из ключевых элементов, влияющих на SEO и удобство пользователей. В этой статье разберём, как правильно реализовать динамические заголовки в теме WordPress с примерами кода и рекомендациями.
Почему важен динамический заголовок в теме WordPress
Заголовок страницы (тег <title>) — это первое, что видит и поисковая система, и пользователь в браузере. Статичный заголовок снижает релевантность и затрудняет понимание контента. Динамический заголовок помогает:
- Улучить SEO, задав уникальный заголовок для каждой страницы;
- Повысить удобство навигации;
- Автоматизировать управление заголовками без ручного редактирования.
Особенно это актуально для тем, которые работают с разными типами записей, архивами, категориями и пользовательскими страницами.
Используем функцию wp_themes_dynamic_title для генерации заголовков
Создадим функцию wp_themes_dynamic_title, которая будет выводить корректный заголовок для различных типов страниц.
function wp_themes_dynamic_title() {
if (is_front_page()) {
bloginfo('name');
echo ' | ' . get_bloginfo('description');
} elseif (is_home()) {
single_post_title();
} elseif (is_singular()) {
single_post_title();
} elseif (is_category()) {
echo 'Категория: ' . single_cat_title('', false);
} elseif (is_tag()) {
echo 'Метка: ' . single_tag_title('', false);
} elseif (is_author()) {
echo 'Автор: ' . get_the_author();
} elseif (is_search()) {
echo 'Результаты поиска по запросу: ' . get_search_query();
} elseif (is_404()) {
echo 'Ошибка 404 — страница не найдена';
} else {
wp_title('|', true, 'right');
}
}Эта функция покрывает основные типы страниц. Вы можете расширять её под свои нужды.
Подключение динамического заголовка в теме
В шаблоне header.php замените статичный <title> на вызов нашей функции:
<title><?php wp_themes_dynamic_title(); ?></title>Таким образом заголовок будет меняться автоматически в зависимости от контекста страницы.
Интеграция с плагином Clearfy Pro для улучшения SEO
Если вы используете плагин Clearfy Pro, то там также есть расширенные настройки SEO-заголовков. Для совместимости можно добавить фильтр, который позволит Clearfy управлять заголовками:
add_filter('pre_get_document_title', function($title) {
if (function_exists('wp_themes_dynamic_title')) {
ob_start();
wp_themes_dynamic_title();
$custom_title = ob_get_clean();
if (!empty($custom_title)) {
return strip_tags($custom_title);
}
}
return $title;
});Это позволит использовать преимущества Clearfy Pro и при этом сохранить гибкость вашей темы.
Добавление SEO-метатегов для заголовка
Для полного контроля над SEO желательно добавить метатеги meta name="description" и meta name="keywords" динамически. Пример функции для описания:
function wp_themes_dynamic_meta_description() {
if (is_singular()) {
global $post;
if ($post->post_excerpt) {
echo '<meta name="description" content="' . esc_attr($post->post_excerpt) . '" />';
} else {
$content = wp_strip_all_tags($post->post_content);
echo '<meta name="description" content="' . esc_attr(mb_substr($content, 0, 160)) . '" />';
}
} elseif (is_category()) {
$desc = category_description();
if ($desc) {
echo '<meta name="description" content="' . esc_attr(strip_tags($desc)) . '" />';
}
} else {
echo '<meta name="description" content="' . get_bloginfo('description') . '" />';
}
}Вставьте вызов wp_themes_dynamic_meta_description() в header.php в секцию <head> после тега <title>.
Оптимизация и отладка
Для отладки можно временно добавить вывод заголовка в консоль браузера:
add_action('wp_head', function() {
ob_start();
wp_themes_dynamic_title();
$title = ob_get_clean();
echo "<script>console.log('Dynamic Title: ' + " . json_encode($title) . ");</script>";
});Это поможет убедиться, что функция работает корректно на всех типах страниц.
Преимущества собственного решения перед плагинами
Хотя есть плагины для SEO и управления заголовками, собственная функция даёт максимум контроля и легковесность. Вы не нагружаете сайт лишними запросами и всегда можете быстро адаптировать логику под задачи.
Резюмируя, динамический заголовок — основа удобства и SEO. Используйте приведённые примеры для внедрения качественных заголовков в свои темы.