THE_CONTENT() │ WP 0.71
Функция the_content()
отвечает за отображение содержимого поста и является шаблонным тегом, который необходимо использовать внутри цикла WordPress.
Как использовать функцию the_content()
Эта функция может быть использована не только внутри циклов, но и на отдельных страницах, таких как page.php
или single.php
.
Важно знать, что если вы используете эту функцию на архивных страницах (то есть на страницах, где отображаются списки постов) и если в контенте есть специальный тег-разделитель <!--more-->
, то функция the_content()
отобразит следующее:
- Всё, что находится до
<!--more-->
, будет показано. - Всё после этого тега будет скрыто и заменено на ссылку "читать далее" (текст ссылки можно изменить с помощью параметра
$more_link_text
).
Использование функции get_the_content()
Функция get_the_content()
позволяет получить содержимое поста — это полезно, если вы хотите обработать текст до его отображения.
Информация о производительности
- Время выполнения функции при обычном использовании: 0.019477 секунд (очень медленно)
- При многократном использовании (50000 раз): 11.65 секунд (медленно)
- PHP 7.1.11, WP 4.9.6
Хуки функции
Функция the_content
также предоставляет возможности для фильтрации содержимого через хуки.
Возвращаемое значение
Функция ничего не возвращает (null), но отображает отформатированное содержимое поста.
Пример использования функции the_content()
Параметры функции
$more_link_text
(строка) — текст ссылки "читать далее..." По умолчанию: (more...)$strip_teaser
(булевый тип, true/false) — Удалить текст тизера перед "читать далее...".
Тизер — это привлекающий текст перед тегом <!--more-->
. Если вы установите этот параметр в true, содержимое перед тегом <!--more-->
на странице is_single()
будет удалено.
Кроме того, вы также можете удалить содержимое перед тегом more
, указав тег <!--noteaser-->
в любом месте текста поста. Обычно тег <!--noteaser-->
располагается сразу после тега <!--more-->
.
По умолчанию: false.
Примеры
Пример 1: Изменение текста ссылки "Читать далее..."
Если вы хотите изменить стандартный текст ссылки, которая отображается, когда содержимое разбивается с помощью <!--more-->
, укажите нужный текст в первом параметре функции:
Пример 2: Вставка заголовка поста в текст ссылки "Читать далее..."
Вы можете использовать функцию the_title()
, чтобы вставить заголовок поста в текст ссылки "читать далее":
Пример 3: Изменение поведения функции относительно тега <!--more-->
Если функция не разбивает текст по тегу <!--more-->
, или наоборот, разбивает там, где это не нужно, можно изменить переменную $more
, установив значение 0 (разбить) или 1 (не разбивать):
Если вы хотите оставить содержимое как есть:
Пример 4: Игнорирование тега "more" для закрепленных постов
Этот пример показывает полное содержимое для закрепленных постов (даже если у них есть тег "more"), тогда как остальные посты будут усечены:
Пример 5: Альтернативное использование
Если вы хотите получить содержимое поста для обработки в PHP, но не отображать его, используйте функцию get_the_content()
:
$content = get_the_content();
Однако имейте в виду, что полученное содержимое (теперь в переменной $content
) не фильтруется. Чтобы фильтровать его, нужно пропустить его через фильтр the_content
:
$content = apply_filters( 'the_content', $content );
$content = str_replace( ']]>', ']]>', $content );
Изменения в функции
Данная функция была представлена в версии 0.71.
Код функции the_content()
Функция the_content()
расположена в файле wp-includes/post-template.php
:
function the_content( $more_link_text = null, $strip_teaser = false ) {
$content = get_the_content( $more_link_text, $strip_teaser );
/**
* Фильтрует содержимое поста.
*
* @since 0.71
*
* @param string $content Содержимое текущего поста.
*/
$content = apply_filters( 'the_content', $content );
$content = str_replace( ']]>', ']]>', $content );
echo $content;
}
Теперь вы знаете, как использовать функцию the_content()
в WordPress и как ее настроить в соответствии с вашими нуждами.