get_the_title()WP 0.71

Получает заголовок записи (поста). Можно указать запись заголовок которой нужно получить.

Функцию можно использовать внутри Цикла WordPress без указания параметра, тогда будет возвращен заголовок текущей записи в цикле. Или передайте ID поста в первом параметре и функция вернет заголовок указанной записи.

Если пост «защищен паролем» или является «личным», то пред заголовком появится соответствующая метка: "Защищен: " (Protected: ) и "Личное: " (Private: ).

В WordPress нет функции get_post_title(), которую вы возможно будете искать по логике функций. Вместо нее используйте эту функцию.

Используйте функцию the_title_attribute(), когда нужно добавить заголовок записи в атрибут HTML тега.

<a href="<?php the_permalink(); ?>" title="<?php the_title_attribute(); ?>">
	<?php the_title(); ?>
</a>
Основа для: the_title()
1 раз — 0.000346 сек (быстро) | 50000 раз — 0.68 сек (очень быстро) | PHP 7.1.0, WP 4.7

Возвращает

Строку. Заголовок записи.

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

$post_title = get_the_title( $post );
$post(число/WP_Post)

Идентификатор записи. Можно передать сразу объект записи.

По умолчанию: 0 - текущий пост в цикле

Примеры

0

#1 Выведем заголовок поста 25

echo get_the_title( 25 );

// или можно передать объект
$the_post = get_post( 25 );
echo get_the_title( $the_post );
0

#2 Нужно ли экранировать вывод

Это зависит от контекста, в котором используется функция. Как правило экранирование не нужно, WP сам занимается этим. В частности к хуку the_title применяются следующие функции:

Экранирование может быть нужно, когда заголовок выводится в атрибуте тега:

<input type="text" value="<?= esc_attr( get_the_title() ) ?>">

Какую-то общую функцию экранирования можно повесить на хук:

add_filter( 'the_title', 'my_escape_title' );

function my_escape_title( $title ){
	return esc_html( $title );
}
-1

#3 Выведем заголовок текущей записи в цикле

echo get_the_title();

// или так в теге H1
echo '<h1>'. get_the_title() .'</h1>';

Список изменений

С версии 0.71 Введена.

Код get_the_title() WP 6.4.3

function get_the_title( $post = 0 ) {
	$post = get_post( $post );

	$post_title = isset( $post->post_title ) ? $post->post_title : '';
	$post_id    = isset( $post->ID ) ? $post->ID : 0;

	if ( ! is_admin() ) {
		if ( ! empty( $post->post_password ) ) {

			/* translators: %s: Protected post title. */
			$prepend = __( 'Protected: %s' );

			/**
			 * Filters the text prepended to the post title for protected posts.
			 *
			 * The filter is only applied on the front end.
			 *
			 * @since 2.8.0
			 *
			 * @param string  $prepend Text displayed before the post title.
			 *                         Default 'Protected: %s'.
			 * @param WP_Post $post    Current post object.
			 */
			$protected_title_format = apply_filters( 'protected_title_format', $prepend, $post );

			$post_title = sprintf( $protected_title_format, $post_title );
		} elseif ( isset( $post->post_status ) && 'private' === $post->post_status ) {

			/* translators: %s: Private post title. */
			$prepend = __( 'Private: %s' );

			/**
			 * Filters the text prepended to the post title of private posts.
			 *
			 * The filter is only applied on the front end.
			 *
			 * @since 2.8.0
			 *
			 * @param string  $prepend Text displayed before the post title.
			 *                         Default 'Private: %s'.
			 * @param WP_Post $post    Current post object.
			 */
			$private_title_format = apply_filters( 'private_title_format', $prepend, $post );

			$post_title = sprintf( $private_title_format, $post_title );
		}
	}

	/**
	 * Filters the post title.
	 *
	 * @since 0.71
	 *
	 * @param string $post_title The post title.
	 * @param int    $post_id    The post ID.
	 */
	return apply_filters( 'the_title', $post_title, $post_id );
}