wp_title() WP 1.5.0
Выводит/возвращает заголовок страницы.
Функция считается устаревшей с версии 4.4.
Вместо неё следует использовать поддержку темы 'title-tag':
/*
* Let WordPress manage the document title.
* By adding theme support, we declare that this theme does not use a
* hard-coded <title> tag in the document head, and expect WordPress to
* provide it for us.
*/
add_theme_support( 'title-tag' );
В основе работы 'title-tag' лежит функция wp_get_document_title().
В функции можно указать разделитель между названием страницы и дополнительными словами в заголовке. С версии 2.5, можно указать, с какой стороны заголовка разделитель должен находиться (справа, слева).
Этот Тег шаблона можно использовать повсеместно, как за пределами Цикла WordPress, так и внутри него. Обычно его используют для указания заголовка страницы в теге <title>
в <head> части страницы.
1 раз — 0.000125 сек (быстро) | 50000 раз — 2.32 сек (быстро)
Возвращает
Строку/null. Строку при получении, null – при отображении.
Использование
<title><?php wp_title( $sep, $echo, $seplocation ); ?></title>
- $sep(строка)
- Текст, который будет показан до или после заголовка (разделитель). По умолчанию сепаратором будет символ:
»
.
По умолчанию: » (»)
- $echo(логический)
- Выводить (true) или возвращать заголовок в переменную (false). По умолчанию заголовок выводится на экран.
По умолчанию: true
- $seplocation(строка)
- Определяет расположение разделителя. Введено в версии 2.5. Если указать
right
, то разделитель будет расположен справа от заголовка, во всех остальных случаях слева.
По умолчанию: ''
Примеры
#1 Выведем заголовок блога
Выведем название блога (используя bloginfo()) и заголовок страницы (предположим, что мы находимся на странице поста).
<title><?php bloginfo('name'); ?> <?php wp_title(); ?></title>
Получим: Заголовок блога » Название поста
#1.2. Если нужно убрать разделитель, то вызываем функцию так:
<title><?php bloginfo('name'); ?> <?php wp_title("", true); ?></title>
#2 Отдельный заголовок для главной страницы
Если для главной страницы мы используем произвольный шаблон, с произвольный выводом (Циклом WordPress), то заголовок страницы может определяться не так как нам бы хотелось. Чтобы избежать этого используйте такой код:
<title><?php bloginfo('name'); ?> |
<?php is_home() ? bloginfo('description') : wp_title(''); ?></title>
#3 Использование разделителей
Выведем название блога затем заголовок страницы и в качестве разделителя установим знак "|
".
<title><?php bloginfo('name'); ?><?php wp_title('|'); ?></title>
Получим: Заголовок блога | Заголовок страницы
Важно! Не используйте в качестве разделителя знаки "_
" и "--
". Это может вызвать ошибки.
#4 Поменяем местами заголовки
Если нужно отобразить сначала заголовок страницы, а затем название блога используйте такой код:
<title><?php wp_title('|', true, 'right'); ?><?php bloginfo('name'); ?></title>
Заметки
- Global. WP_Locale. $wp_locale WordPress date and time locale object.
Список изменений
Код wp_title() wp title
WP 5.6.2
<?php
function wp_title( $sep = '»', $display = true, $seplocation = '' ) {
global $wp_locale;
$m = get_query_var( 'm' );
$year = get_query_var( 'year' );
$monthnum = get_query_var( 'monthnum' );
$day = get_query_var( 'day' );
$search = get_query_var( 's' );
$title = '';
$t_sep = '%WP_TITLE_SEP%'; // Temporary separator, for accurate flipping, if necessary.
// If there is a post.
if ( is_single() || ( is_home() && ! is_front_page() ) || ( is_page() && ! is_front_page() ) ) {
$title = single_post_title( '', false );
}
// If there's a post type archive.
if ( is_post_type_archive() ) {
$post_type = get_query_var( 'post_type' );
if ( is_array( $post_type ) ) {
$post_type = reset( $post_type );
}
$post_type_object = get_post_type_object( $post_type );
if ( ! $post_type_object->has_archive ) {
$title = post_type_archive_title( '', false );
}
}
// If there's a category or tag.
if ( is_category() || is_tag() ) {
$title = single_term_title( '', false );
}
// If there's a taxonomy.
if ( is_tax() ) {
$term = get_queried_object();
if ( $term ) {
$tax = get_taxonomy( $term->taxonomy );
$title = single_term_title( $tax->labels->name . $t_sep, false );
}
}
// If there's an author.
if ( is_author() && ! is_post_type_archive() ) {
$author = get_queried_object();
if ( $author ) {
$title = $author->display_name;
}
}
// Post type archives with has_archive should override terms.
if ( is_post_type_archive() && $post_type_object->has_archive ) {
$title = post_type_archive_title( '', false );
}
// If there's a month.
if ( is_archive() && ! empty( $m ) ) {
$my_year = substr( $m, 0, 4 );
$my_month = $wp_locale->get_month( substr( $m, 4, 2 ) );
$my_day = (int) substr( $m, 6, 2 );
$title = $my_year . ( $my_month ? $t_sep . $my_month : '' ) . ( $my_day ? $t_sep . $my_day : '' );
}
// If there's a year.
if ( is_archive() && ! empty( $year ) ) {
$title = $year;
if ( ! empty( $monthnum ) ) {
$title .= $t_sep . $wp_locale->get_month( $monthnum );
}
if ( ! empty( $day ) ) {
$title .= $t_sep . zeroise( $day, 2 );
}
}
// If it's a search.
if ( is_search() ) {
/* translators: 1: Separator, 2: Search query. */
$title = sprintf( __( 'Search Results %1$s %2$s' ), $t_sep, strip_tags( $search ) );
}
// If it's a 404 page.
if ( is_404() ) {
$title = __( 'Page not found' );
}
$prefix = '';
if ( ! empty( $title ) ) {
$prefix = " $sep ";
}
/**
* Filters the parts of the page title.
*
* @since 4.0.0
*
* @param string[] $title_array Array of parts of the page title.
*/
$title_array = apply_filters( 'wp_title_parts', explode( $t_sep, $title ) );
// Determines position of the separator and direction of the breadcrumb.
if ( 'right' === $seplocation ) { // Separator on right, so reverse the order.
$title_array = array_reverse( $title_array );
$title = implode( " $sep ", $title_array ) . $prefix;
} else {
$title = $prefix . implode( " $sep ", $title_array );
}
/**
* Filters the text of the page title.
*
* @since 2.0.0
*
* @param string $title Page title.
* @param string $sep Title separator.
* @param string $seplocation Location of the separator ('left' or 'right').
*/
$title = apply_filters( 'wp_title', $title, $sep, $seplocation );
// Send it out.
if ( $display ) {
echo $title;
} else {
return $title;
}
}
Cвязанные функции
Еще из тегов шаблона: Основные