the_content()
Выводит контент текущего поста (записи).
Тег шаблона, должен использоваться внутри Цикла WordPress или на странице записи (page.php, single.php), в начале которой вызвана функция the_post().
Когда функция используется на страницах архивов (не отдельная страница записи) и если в контенте используется тег-разделитель <!--more-->
, то эта функция выведет не весь контент, а только текст до тега <!--more-->
с последующей ссылкой "читать дальше" (текст ссылки можно изменить через параметр $more_link_text).
Смотрите также функцию the_excerpt() — получает отрывок контента поста.
Хуки из функции
Возвращает
null
. Выводит на экран отформатированный контент записи.
Использование
<?php the_content( $more_link_text, $strip_teaser ); ?>
- $more_link_text(строка)
- Текст, который будет показан как текст ссылки, вместо '(читать дальше...)'.
По умолчанию: '(читать дальше...)' - $strip_teaser(логический)
Под словом «teaser» понимается привлекающий текст до тега <!--more-->. strip_teaser - значит удалить этот текст. Если установить параметр в true, то контент до тега <!--more--> на странице is_single() будет удален.
Аналогично можно удалить контент до тега more, указав в любом месте кода статьи тег
<!--noteaser-->
. Обычно его принято указывать сразу после тега <!--more-->.По умолчанию: false
Примеры
#1 Изменение поведения функции, относительно обрезки текста по тегу <!--more-->
Если функция не режет текст по тегу <!--more--> или наоборот, режет, где нам это не нужно, то можно изменить переменную $more, тем самым указав функции резать (0) или не резать (1) текст.
<?php global $more; // Объявим переменную $more как глобальную (перед Циклом WordPress). $more = 0; // Изменим значение переменной, чтобы показать только текст до тега more. the_content("More..."); ?>
если нужно оставить контент как есть:
<?php global $more; $more = 1; // игнорируем тег more (не обрезаем). the_content(); ?>
#2 Изменение текста ссылки "читать дальше..."
Если нужно изменить стандартный текст ссылки, который выводится функций, когда контент обрезается по тегу <!--more-->, то укажите необходимый текст в первом параметре функции:
<?php the_content('Перейти к полной статье...'); ?>
#3 Вставка заголовка статьи в текст ссылки "читать дальше..."
Можно использовать Тег шаблона the_title()
, чтобы вставить в текст ссылки "читать дальше..." заголовок записи:
<?php the_content( "читать полностью: " . the_title('', '', false) ); ?>
#4 Игнорируем тег "more" для прилепленных записей (sticky)
Этот пример будет выводить весь контент для прилепленных записей (даже если в них есть тег "more"), но остальных записей текст будет обрезаться:
<?php global $more; // Объявим переменную $more как глобальную. if( is_sticky() ){ $more = 1; the_content(); } else { $more = 0; the_content( 'Read the rest of this entry »' ); } ?>
#5 Альтернативное использование
Если нужно получить контент записи для обработки, а не выводить его на экран, то можно использовать функцию 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 6.7.1
function the_content( $more_link_text = null, $strip_teaser = false ) { $content = get_the_content( $more_link_text, $strip_teaser ); /** * Filters the post content. * * @since 0.71 * * @param string $content Content of the current post. */ $content = apply_filters( 'the_content', $content ); $content = str_replace( ']]>', ']]>', $content ); echo $content; }