Как использовать функцию `the_content()` в WordPress

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 и как ее настроить в соответствии с вашими нуждами.

Leave a Reply

Ваш адрес email не будет опубликован. Обязательные поля помечены *