Просто добавьте этот код в functions.php
вашей темы:
function your_document_title($title) {
$sep = ' | ';
$array = [];
$term = get_queried_object();
global $page;
if (is_singular()) {
if ($page) {
array_push($array, 'Часть '.intval($page));
}
array_push($array, get_the_title($term));
}
else if (is_paged()) {
array_push($array, 'Страница ' . intval(get_query_var('paged')));
}
if (is_search()) {
array_push($array, 'Результат поиска по запросу "'.esc_html($_GET['s'].'"'));
}
else if (is_category($term)) {
array_push($array, 'Категория "' . $term->name . '"');
}
else if (is_tag($term)) {
array_push($array, 'Метка "' . $term->name . '"');
}
array_push($array, get_bloginfo('name'));
if (is_front_page() && !is_paged()) {
array_push($array, get_bloginfo('description'));
}
return implode($sep, $array);
}
add_filter('document_title', 'your_document_title');
Эти строчки добавляют фильтр к методу document_title
.
Для каждого заголовка страницы WordPress вызывает наш код следующим образом:
$title = your_document_title(default_title());
Правила такие:
- для одиночных постов — «Название поста»
- для страницы категории выводится — Категория «Название»
- для страницы тега выводится — Метка «Название»
- для главной страницы «Название сайта | Описание сайта»
- для постов разбитых на части добавляется «Часть N» в начале
- для страница поиска типа /s=QUERY «Результат поиска QUERY»
- для страниц пагинации типа /page/N добавляется «Страница N» в начале
- для всех страниц добавляется информация из поля Настройки->Общие->Название сайта
- для всех страниц, кроме главной и страниц пагинаций, в конце добавляется информация из поля «Настройки->Общие->Краткое описание»