document_title_parts
Позволяет изменить заголовок (title) страницы сайта на WordPress.
Это фильтр для функции wp_get_document_title(), которая по умолчанию должна выводить заголовок страницы на фронте в HEAD части HTML, если включена поддержка заголовков add_theme_support( 'title-tag' ).
Этот фильтр позволяет изменить части заголовка - заголовок строится из составных частей.
Используйте хук document_title, чтобы изменить полностью сформированный заголовок.
Использование
add_filter( 'document_title_parts', 'wp_kama_document_title_parts_filter' ); /** * Function for `document_title_parts` filter-hook. * * @param array $title The document title parts. * * @return array */ function wp_kama_document_title_parts_filter( $title ){ // filter... return $title; }
- $title(массив)
Ассоциативный массив со всеми частями заголовка. Части затем объединяются через разделитель
-
. Разделитель можно изменить через фильтр document_title_separator.Элементы массива:
-
title(строка)
Заголовок просматриваемой страницы. -
page(строка)
Текст для страницы пагинации. Создается на основе одной из глобальных переменных:global $page, $paged
. -
tagline(строка)
Описание сайта на домашней странице - is_front_page(). - site(строка)
Описание сайта на любой странице, кроме домашней.
-
Примеры
#1 Изменим заголовок страницы portfolio
add_filter( 'document_title_parts', 'filter_function_name_2114' ); function filter_function_name_2114( $title ){ if( is_page('portfolio') ) $title['title'] = 'Моя страница портфолио — Декстер Морган'; return $title; }
#2 Удаление названия сайта в конце заголовка
Ко всем заголовкам на отдельных страницах is_singular() добавляется название сайта через разделитель. Это не всегда хорошо, давайте поправим этот момент:
add_filter( 'document_title_parts', function( $parts ){ if( isset($parts['site']) ) unset($parts['site']); return $parts; });
#3 Удаление описания сайта из заголовка главной страницы
На главной странице title по умолчанию выводится по шаблону "Название сайта - описание сайта". Чтобы удалить описание сайта, воспользуйтесь кодом:
// удалим описание сайта из заголовка для главной страницы add_filter( 'document_title_parts', function( $title ){ if( isset($title['tagline']) ) unset( $title['tagline'] ); return $title; });
Список изменений
С версии 4.4.0 | Введена. |
Где вызывается хук
$title = apply_filters( 'document_title_parts', $title );