WordPress как на ладони
wordpress jino

wp_title() WP 1.5.0

Выводит/возвращает заголовок страницы.

Функция считается устаревшей с версии 4.4. Вместо нее используйте wp_get_document_title()

В функции можно указать разделитель между названием страницы и дополнительными словами в заголовке. С версии 2.5, можно указать, с какой стороны заголовка разделитель должен находиться (справа, слева).

Этот Тег шаблона можно использовать повсеместно, как за пределами Цикла WordPress, так и внутри него. Обычно его используют для указания заголовка страницы в теге <title> в <head> части страницы.

✈ 1 раз = 0.000125с = быстро | 50000 раз = 2.32с = быстро
Хуки из функции:

Использование

<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>

Код wp title: wp-includes/general-template.php WP 4.8.2

<?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 = $wp_locale->get_month( substr( $m, 4, 2 ) );
		$my_day   = intval( 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 phrase */
		$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 array $title_array 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 ) { // sep 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вязанные функции

Из раздела: Другие функции темы

wp_title 26 комментариев
Полезные 1 Вопросы 1 Все
  • Максим @

    Автор, привет! Всем привет!
    Как убрать слово Архивы в title?
    ТХ:
    — WordPress Версия 4.8
    — тема Twenty Fifteen
    На данный момент всё обновлено до последней версии.

    При просмотре страницы категории (рубрики) в title в начале написано Архивы … , а затем название категории (рубрики).
    Как убрать?
    Заранее благодарю за ответ!

    Ответить3 месяца назад #
  • Гельдымурад

    Здравствуйте, сейчас создаю веб сайт. На страницах, которые я создаю сам изменяю TITLE через Yoast плагин, но если эта страница создана пользователем то как убрать дефис из title?
    Например вот такая страница https://upwork.uz/projects/

    Ответитьмесяц назад #
    • campusboy1833 cайт: wp-plus.ru

      Привет. Судя по всему, это post-type-archive-project, то есть архивная страница типа поста. Тайтл для него редактируется в настройках самого плагина, где-то тут:

      скриншот

      1
      Ответитьмесяц назад #
  • campusboy1833 cайт: wp-plus.ru

    Почему функция считается устаревшей? В коде такого функции об этом не слова, в Кодексе тоже не нашёл сведений.

    Ответитьмесяц назад #

Здравствуйте, !

Ваш комментарий