# wp_title()

URL: https://chugunov.pro/api-wordpress/functions/wp_title/
Проверено на WordPress 6.9, обновлено 06.08.2026.
Источник: независимый русскоязычный справочник chugunov.pro. Не является официальной документацией WordPress.

Тип: функция.
Появился в версии: 1.0.0.

## Сигнатура

```php
wp_title( string $sep = '&raquo;', bool $display = true, string $seplocation = '' ): string|null
```

## Описание

По умолчанию заголовок страницы отображает разделитель перед заголовком страницы, так что название блога оказывается перед заголовком страницы. Для отображения заголовка это не лучший вариант, поскольку на большинстве вкладок показывается название блога, а не то, что важно — страница, которую просматривает пользователь.
Размещение названия блога после заголовка страницы или «справа» от него также даёт преимущества для SEO. Впрочем, размещать название блога справа — это в основном здравый смысл, ведь большинство браузеров поддерживают вкладки. Этого можно добиться с помощью параметра seplocation, задав ему значение ‘right’. Это изменение появилось примерно в версии 2.5.0 — на случай, если для тем важна обратная совместимость.

## Параметры

- `$sep` `string` — необязательный, по умолчанию `'&raquo;'`. Как разделять различные элементы в заголовке страницы.
  
  Значение по умолчанию '»'.
- `$display` `bool` — необязательный, по умолчанию `true`. Отображать или получать заголовок.
- `$seplocation` `string` — необязательный, по умолчанию `''`. Расположение разделителя ('left' или 'right').

## Возвращаемое значение

`string|null` — $display

## Исходный код

Файл: `wp-includes/general-template.php:1343`

```php
function wp_title( $sep = '&raquo;', $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 = substr( $m, 4, 2 );
		$my_day   = (int) substr( $m, 6, 2 );
		$title    = $my_year .
			( $my_month ? $t_sep . $wp_locale->get_month( $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' );
	}

	if ( ! is_string( $title ) ) {
		$title = '';
	}

	$prefix      = '';
	$title_array = array();
	if ( '' !== $title ) {
		$prefix      = " $sep ";
		$title_array = explode( $t_sep, $title );
	}

	/**
	 * 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', $title_array );

	// 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 (either 'left' or 'right').
	 */
	$title = apply_filters( 'wp_title', $title, $sep, $seplocation );

	// Send it out.
	if ( $display ) {
		echo $title;
	} else {
		return $title;
	}
}
```

## История изменений

- 1.0.0 — Introduced.

## Связанные

Использует: [`zeroise`](https://chugunov.pro/api-wordpress/functions/zeroise/), [`single_post_title`](https://chugunov.pro/api-wordpress/functions/single_post_title/), [`post_type_archive_title`](https://chugunov.pro/api-wordpress/functions/post_type_archive_title/), [`single_term_title`](https://chugunov.pro/api-wordpress/functions/single_term_title/), [`is_single`](https://chugunov.pro/api-wordpress/functions/is_single/), [`is_search`](https://chugunov.pro/api-wordpress/functions/is_search/), [`is_404`](https://chugunov.pro/api-wordpress/functions/is_404/), [`is_home`](https://chugunov.pro/api-wordpress/functions/is_home/), [`is_front_page`](https://chugunov.pro/api-wordpress/functions/is_front_page/), [`is_page`](https://chugunov.pro/api-wordpress/functions/is_page/), [`is_category`](https://chugunov.pro/api-wordpress/functions/is_category/), [`is_tag`](https://chugunov.pro/api-wordpress/functions/is_tag/), [`is_tax`](https://chugunov.pro/api-wordpress/functions/is_tax/), [`is_author`](https://chugunov.pro/api-wordpress/functions/is_author/), [`get_query_var`](https://chugunov.pro/api-wordpress/functions/get_query_var/), `WP_Query`, [`is_post_type_archive`](https://chugunov.pro/api-wordpress/functions/is_post_type_archive/), [`get_queried_object`](https://chugunov.pro/api-wordpress/functions/get_queried_object/), [`is_archive`](https://chugunov.pro/api-wordpress/functions/is_archive/), `WP_Locale::get_month`, [`__`](https://chugunov.pro/api-wordpress/functions/__/), [`get_taxonomy`](https://chugunov.pro/api-wordpress/functions/get_taxonomy/), [`apply_filters`](https://chugunov.pro/api-wordpress/functions/apply_filters/), [`get_post_type_object`](https://chugunov.pro/api-wordpress/functions/get_post_type_object/).

Оригинал в официальной документации: https://developer.wordpress.org/reference/functions/wp_title/
