- get_the_title()
- Использование
- Возвращает
- Примеры
- Популярные игры в 2018 году
- Исходный код get_the_title()
- get_the_title() — возвращает заголовок поста
- Параметры
- Очистка
- Пример 1. Как вывести заголовок текущего поста в цикле
- Пример 2. Как вывести заголовок конкретного поста
- Пример 3. Создаём хлебные крошки с выводом заголовка страницы
- the_title
- protected_title_format
- private_title_format
- Миша
- get_the_title() │ WP 0.71
- Возвращает
- Использование
- Примеры
- #1 Выведем заголовок поста 25
- #2 Нужно ли экранировать вывод
- #3 Выведем заголовок текущей записи в цикле
- '. get_the_title() .'
- Список изменений
- Код get_the_title() get the title WP 6.2.2
- Cвязанные функции
- title (заголовок)
- Записи: посты, страницы, .
get_the_title()
Возвращает заголовок записи для дальнейшей работы. В параметрах можно указать для какого именно поста выводить заголовок.
К заголовку будет добавлен текст «Защищен:» или «Личное:», если запись защищена паролем или установлена опция Личное.
Функция не выводит на странице заголовок.
Вы можете вывести указав echo get_the_title(); или используйте the_title()
Использование
Возвращает
строку
Заголовок текущего поста.
Примеры
1. Вывести заголовок записи с ID 5
2. Получить заголовок текущей записи в цикле, заменить 2017 на 2018 и вывести его в теге
' . $title . ''; // выведетПопулярные игры в 2018 году
?>
Исходный код get_the_title()
Расположен в wp-includes/post-template.php строка 110
function get_the_title( $post = 0 ) < $post = get_post( $post ); $title = isset( $post->post_title ) ? $post->post_title : ''; $id = isset( $post->ID ) ? $post->ID : 0; if ( ! is_admin() ) < if ( ! empty( $post->post_password ) ) < /** * 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', __( 'Protected: %s' ), $post ); $title = sprintf( $protected_title_format, $title ); >elseif ( isset( $post->post_status ) && 'private' == $post->post_status ) < /** * 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', __( 'Private: %s' ), $post ); $title = sprintf( $private_title_format, $title ); >> /** * Filters the post title. * * @since 0.71 * * @param string $title The post title. * @param int $id The post ID. */ return apply_filters( 'the_title', $title, $id ); >
2016—2023 © WPSchool.ru — Обучающий ресурс о WordPress, статьи, уроки, обучение и курсы.
Размещаемся на лучшем хостинге Beget ❤️ .
Этот сайт использует cookie для хранения данных. Продолжая использовать сайт, Вы даете свое согласие на работу с этими файлами. OK
get_the_title() — возвращает заголовок поста
Функция возвращает заголовок поста, ID которого передан в параметрах, если же ID не указан, возвращается заголовок текущей записи в цикле.
Смотрите мой видеоурок про циклы WordPress.
Если запись защищена паролем, то перед заголовком добавляется «Защищено: », меняется хуком protected_title_format если пост помечен как личное, тогда префикс заголовка будет «Личное: », меняется хуком private_title_format.
Параметры
$post (целое число|WP_Post) ID или объект поста, заголовок которого нужно получить, по умолчанию — текущий пост в цикле.
Очистка
Важный момент, про который вы должны помнить. Вывод функции get_the_title() никак не чистится, кроме использования в некоторых местах в админке (об этом ниже), это означает, что если например в заголовок записи вы закинете JavaScript, например , то этот код будет выполняться везде, где выводится заголовок.
Поэтому, в зависимости от ситуации, рекомендую вам рассмотреть возможность использования:
echo esc_html( get_the_title() );
либо, если в заголовке могут присутствовать HTML-теги, то:
echo wp_kses_post( get_the_title() );
Пример 1. Как вывести заголовок текущего поста в цикле
При использовании внутри цикла WordPress никакие параметры передавать не нужно:
Пример 2. Как вывести заголовок конкретного поста
echo get_the_title( 531 ); // выводим заголовок поста с ID 531
$specific_post = get_post( 531 ); echo get_the_title( $specific_post );
Пример 3. Создаём хлебные крошки с выводом заголовка страницы
echo '// получаем заголовок родительского поста $parent_title = get_the_title( $post->post_parent ); // если заголовок не равен заголовку текущего поста, то выводим ссылку на родителя if ( $parent_title != the_title( ' ', ' ', false ) ) { echo ' . esc_url( get_permalink( $post->post_parent ) ) . '" title="' . esc_attr( $parent_title ) . '">' . esc_html( $parent_title ) . ' » '; } // и выводим заголовок текущего поста echo get_the_title(); echo '';
the_title
Этот фильтр-хук – основное отличие между выводом заголовка функцией get_the_title() и выводом напрямую из объекта поста $post->post_title .
На этот фильтр накладываются некоторые функции, а именно:
- В первую очередь происходит автоматическая замена кавычек и других символов функцией wptexturize().
- Затем происходит замена символа & на & .
- После применяется обычная PHP-функция trim() , которая удаляет пробелы по краям заголовка.
- Ещё применяется функция capital_P_dangit(), исправляющая неправильное написание WordPress (WordPress, wordpress, вротпресс и т д).
- Также в админке WordPress происходит ещё и очистка функцией esc_html().
Например, ну не знаю, давайте добавим ID поста в конце каждого заголовка в скобочках!
add_filter( 'the_title', 'true_custom_title_stuff', 25, 2 ); function true_custom_title_stuff( $title, $post_id ) { return $title . ' (' . $id . ')'; }
protected_title_format
Позволяет изменить именно шаблон вывода заголовка поста, если запись защищена паролем.
По умолчанию – либо Защищено: %s для русской локализации, либо Protected: %s . %s , как можно догадаться впоследствии заменяется текстом заголовка.
Например можем попробовать сделать такой формат: %s (защищена паролем)
add_filter( 'protected_title_format', 'true_protected_title_format', 25, 2 ); function true_protected_title_format( $format, $post ) { // мы можем использовать тут объект поста $post для каких-то доп. условий return '%s (защищена паролем)'; }
private_title_format
Позволяет изменить именно шаблон вывода заголовка поста, если запись отмечена как «Личное». По умолчанию – либо Личное: %s для русской локализации, либо Private: %s .
Поменяем так же, как и в предыдущем примере, но только для страниц:
add_filter( 'private_title_format', 'true_private_title_format', 25, 2 ); function true_private_title_format( $format, $post ) { if( 'page' === get_post_type( $post ) ) { return '%s (личное)'; } return $format; }
А можно и вовсе избавиться от этих надписей:
add_filter( 'private_title_format', 'true_no_private_title_format' ); function true_no_private_title_format( $format ) { return '%s'; }
Миша
Впервые познакомился с WordPress в 2009 году. Организатор и спикер на конференциях WordCamp. Преподаватель в школе Нетология.
Пишите, если нужна помощь с сайтом или разработка с нуля.
get_the_title() │ WP 0.71
Получает заголовок записи (поста). Можно указать запись заголовок которой нужно получить. Функцию можно использовать внутри Цикла WordPress без указания параметра, тогда будет возвращен заголовок текущей записи в цикле. Или передайте ID поста в первом параметре и функция вернет заголовок указанной записи. Если пост «защищен паролем» или является «личным», то пред заголовком появится соответствующая метка: «Защищен: » (Protected: ) и «Личное: » (Private: ).
В WordPress нет функции get_post_title() , которую вы возможно будете искать по логике функций. Вместо нее используйте эту функцию.
Используйте функцию the_title_attribute(), когда нужно добавить заголовок записи в атрибут HTML тега.
Хуки из функции
Возвращает
Использование
$post_title = get_the_title( $post );
$post(число/WP_Post) Идентификатор записи. Можно передать сразу объект записи. По умолчанию: 0 — текущий пост в цикле
Примеры
#1 Выведем заголовок поста 25
echo get_the_title( 25 ); // или можно передать объект $the_post = get_post( 25 ); echo get_the_title( $the_post );
#2 Нужно ли экранировать вывод
Экранирование может быть нужно, когда заголовок выводится в атрибуте тега:
Какую-то общую функцию экранирования можно повесить на хук:
add_filter( ‘the_title’, ‘my_escape_title’ ); function my_escape_title( $title )
#3 Выведем заголовок текущей записи в цикле
echo get_the_title(); // или так в теге H1 echo ''. get_the_title() .'
';
Список изменений
Код get_the_title() get the title WP 6.2.2
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 ); >
Cвязанные функции
title (заголовок)
Записи: посты, страницы, .
- edit_post_link()
- get_delete_post_link()
- get_edit_post_link()
- get_permalink()
- get_post_field()
- get_post_status()
- get_post_time()
- get_sample_permalink()
- get_the_content()
- get_the_date()
- get_the_excerpt()
- get_the_ID()
- get_the_modified_date()
- get_the_modified_time()
- get_the_permalink()
- get_the_time()
- get_the_title_rss()
- has_excerpt()
- post_password_required()
- register_post_status()
- the_author()
- the_content()
- the_date()
- the_excerpt()
- the_excerpt_rss()
- the_ID()
- the_modified_date()
- the_permalink()
- the_time()
Как задать метаданныйе (тайтл, кейвордс, и десрипшн) для рубрике без плагина? Думаю, это многим интересно.
Здравствуйте Тимур, я бы хотел узнать есть ли какая нибудь функция, что бы получить всё в обратном порядке ? типа:
$pID = get_post_id($title); echo "ID Поста".$pID;
В ответ:
ID Поста: 1 Устал Вытаскивать через query_posts(). Спасибо и Ещё Вопрос, Возможно ли получить все данные по title:
$post_obj = get_page_by_title( 'привет, мир!', OBJECT, 'post' ); $post_id = $post_obj->ID;
($wpdb->get_var( $wpdb->prepare( "SELECT ID FROM $wpdb->posts WHERE post_title = %s", $post_title ) ))
echo get_post($review)->post_title;
Он выведется таким, каким хранится в базе данных. Правда при выводе лучше использовать esc_html() от греха подальше, читай очистка (валидация, проверка) входящих/исходящих данных в WordPress. Если нужно, чтобы заголовок выводился по принципам самого WordPress, то лучше использовать вариант
echo get_the_title( $review );
Функция get_the_title() проводит ряд проверок (см. её код), а также задействует ряд фильтров, которыми пользуются как сам движок, так и темы/плагины. Главный из них фильтр the_title. На этот фильтр подвязаны ряд функций по очистки строки, делающий заголовок безопасным при выводе на экран. В описании к фильтру в разделе «Где используется хук в ядре WordPress» можно увидеть все функции, подвязанных на этот хук. На мой взгляд в большинстве случаев лучше использовать данный вариант — и читается понятнее и движок все необходимые очистки делает самостоятельно + остаётся возможность темам/плагинам воздействовать на заголовок при необходимости.