Позволяет изменить текст заголовка страницы, сформированный функцией wp_title().
Позволяет изменить текст заголовка страницы, сформированный функцией wp_title().
Обычно этот текст выводится в HTML-теге <title> и отображается во вкладке браузера.
Обработчик должен возвращать строку. Если забыть return, заголовок может стать пустым, а последующие обработчики могут работать неправильно.
Фильтр применяется после сборки заголовка и добавления разделителя, перед выводом или возвратом результата.
Функция wp_title() и этот хук условно считается устаревшими, однако они по-прежнему доступны и не помечены как устаревшие.
Рекомендуется использовать используйте поддержку title-tag, при котором WordPress формирует заголовок через wp_get_document_title(), без вызова фильтра wp_title.
Для настройки такого заголовка доступны хуки:
add_filter( 'wp_title', 'wp_kama_title_filter', 10, 3 );
/**
* Function for `wp_title` filter-hook.
*
* @param string $title Page title.
* @param string $sep Title separator.
* @param string $seplocation Location of the separator (either 'left' or 'right').
*
* @return string
*/
function wp_kama_title_filter( $title, $sep, $seplocation ){
// filter...
return $title;
}» (»). Может быть пустой строкой.$title. Изменение переменной $sep внутри обработчика не заменит его в готовой строке.Расположение разделителя, переданное в wp_title():
right - справа от заголовка. Порядок частей составного заголовка также разворачивается.left или другое значение - слева от заголовка.По умолчанию передаётся пустая строка '', которая работает как left.
Пример для темы, которая выводит <title> через wp_title().
В header.php, внутри <head>:
<title><?php wp_title( '|', true, 'right' ); ?></title>
В functions.php:
add_filter( 'wp_title', 'mytheme_filter_wp_title', 10, 3 );
function mytheme_filter_wp_title( $title, $sep, $seplocation ) {
if ( is_feed() ) {
return $title;
}
$site_name = get_bloginfo( 'name', 'display' );
if ( 'right' === $seplocation ) {
$title .= $site_name;
} else {
$title = $site_name . $title;
}
$description = get_bloginfo( 'description', 'display' );
if ( $description && ( is_home() || is_front_page() ) ) {
$title .= " $sep $description";
}
$page_number = max(
(int) get_query_var( 'paged' ),
(int) get_query_var( 'page' )
);
if ( $page_number >= 2 && ! is_404() ) {
$title .= " $sep " . sprintf(
__( 'Page %s', 'mytheme' ),
$page_number
);
}
return esc_html( $title );
}Код добавляет название сайта, на главной и странице записей дописывает описание сайта, а при пагинации добавляет номер страницы. Учитывается как пагинация списка записей (paged), так и разбиение одной записи на страницы (page). При вызове в контексте ленты заголовок остаётся без изменений.
При разделителе справа результат для записи будет выглядеть так: Название записи | Название сайта.
Замените mytheme на текстовый домен своей темы. Название сайта дополнительно выводить в header.php не нужно.
WordPress подключает к этому хуку esc_html() с приоритетом 10. Обработчик из functions.php с таким же приоритетом обычно выполняется уже после него. Поэтому добавленный текст нужно экранировать самостоятельно, как в примере.
| # | Наименование новости | Тональность | Информативность | Дата публикации |
|---|---|---|---|---|
| 1 | Хук-Фильтр WordPress: paginate_links | 0 | 17.69 | 20-09-2026 |
| 2 | Хук-Фильтр WordPress: post_type_link | 0 | 21.11 | 21-09-2026 |
| 3 | Хук-Фильтр WordPress: get_the_excerpt | 0 | 19.09 | 22-09-2026 |
| 4 | Хук-Фильтр WordPress: the_category | 0 | 19.09 | 20-09-2026 |
| 5 | Хук-событие WordPress: admin_head | 0 | 23.68 | 20-09-2026 |
| 6 | Хук-Фильтр WordPress: excerpt_length | 0 | 19.41 | 20-09-2026 |
| 7 | Функция WordPress: WC_Product{} | 0 | 9.18 | 03-10-2026 |
| 8 | Хук-событие WordPress: restrict_manage_posts | 0 | 12.4 | 22-09-2026 |
| 9 | Хук-событие WordPress: edit_post_(post_type) | 0 | 18.33 | 22-09-2026 |
| 10 | Хук-событие WordPress: network_admin_edit_(action) | 0 | 21.16 | 01-10-2026 |