wp_get_document_title()
Отримує заголовок поточної сторінки (документа), який прийнято виводити у html тезі <title> .
Це заміна для застарілої функції wp_title() .
В кінці заголовка додається — название сайта
. На головній сторінці замість назви виводиться — описание сайта
. Головна сторінка визначається так: is_home() && is_front_page()
. Для сторінок пагінації в кінці буде додано номер сторінки: – Страница 2
.
Ця функція спрацює в <head> частини HTML автоматично, якщо тема містить підтримку title-tag :
add_theme_support( 'title-tag');
У цьому випадку в <head> буде додано таку конструкцію:
<title><?php echo wp_get_document_title(); ?></title>
Відповідно до сучасних тем WP взагалі не потрібно додавати тег <title> в <head> , він буде доданий автоматично. Додасть його функція wp_head() .
Роботу цієї функції можна перевизначити через хук pre_get_document_title :
$title = apply_filters( 'pre_get_document_title', '' ); if ( ! empty( $title ) ) { return $title; }
Див. Приклад 3.
Використовуйте фільтри:
- document_title_parts , щоб змінити будь-яку частину заголовка, що виводиться цією функцією.
- document_title , щоб змінити підсумковий рядок заголовка.
(швидко) | 50000 разів – 15 сек
(повільно)
Хуки з функції
Приклади
#1 Демонстрація роботи
Допустимо ми знаходимося на сторінці “Контакти”:
echo wp_get_document_title(); // виведе: Контакти - Назва сайту
#2 Висновок TITLE заголовка сторінки
Це заміна тега шаблону wp_title() . Використовується header.php для виведення заголовка будь-якої сторінки.
Це демонстраційний приклад, насправді WP цей код виконується функцією title-tag .
<title><?php echo wp_get_document_title(); ?></title>
#3 Виведемо свій заголовок, використовуючи фільтр
Допустимо нам потрібно, щоб ця функція взагалі не працювала і через неї ми хочемо вивести свій заголовок, наприклад “Моя сторінка”, на сторінці з ID 20:
// На сторінці 20 буде виведено заголовок "Моя сторінка" add_filter( 'pre_get_document_title', function(){ global $post; if( $post->ID != 20 ) return ''; // не змінюємо нічого return 'Моя сторінка'; } );
#4 Перевизначаємо функцію
Можна написати свою функцію та повністю замінити роботу цієї функції:
add_filter( 'pre_get_document_title', 'my_get_document_title'); function my_get_document_title(){ // Генеруємо динамічний заголовок кожної сторінки. // За основу можна взяти код цієї функції та поправити його під себе. $title = 'Це динамічно створений заголовок'; return $title; }
#5 Змінимо роздільник між заголовком та назвою сайту
За замовчуванням функція додає в заголовку назву сайту через роздільник: ‘ – ‘. Розділювач можна змінити через фільтр:
add_filter( 'document_title_separator', function(){ return' | '; } );
#6 Видалимо назви сайту в кінці заголовка
До всіх заголовків на окремих сторінках is_singular() додається назва сайту через роздільник. Це не завжди добре, давайте поправимо цей момент. Для цього використовуємо фільтр: document_title_parts :
// Видалимо назви сайту в кінці заголовка add_filter( 'document_title_parts', function( $parts ){ if( isset( $parts['site'] ) ){ unset($parts['site']); } return $parts; } );
#7 Видалимо опис сайту із заголовка головної сторінки
На головній сторінці виводиться “Назва сайту – опис сайту”. Щоб видалити опис та виводити лише назву, використовуйте такий хук:
// видалимо опис із заголовка для головної сторінки add_filter( 'document_title_parts', function( $title ){ if( isset( $title['tagline'] ) ){ unset($title['tagline']); } return $title; } );
нотатки
- Global. int. $page Page number of a single post.
- Global. int. $paged Page number of a list of posts.
список змін
З версії 4.4.0 | Введено. |