the_content() – выводит контент страницы или записи

Функция the_content() выводит содержимое текущего поста (записи, страницы или произвольного типа поста) в цикле.

Функция для использования внутри цикла WordPress. Если вам нужен контент не текущей, а определённой записи или страницы, то взляните на get_the_content().

Выводит полностью весь пост, если задействована на страницах:

Выводит только часть контента поста, которая находится до тега <!--more--> на следующих типах страниц:

  • рубрики category.php,
  • метки tag.php,
  • таксономии taxonomy.php.
  • поиск search.php,
  • архивы archive.php,

По поводу упомянутых файлов – не обязательно для отображения определённого типа страницы может задействоваться именно указанный файл, например для рубрик может использоваться и archive.php, и index.php, для лучшего понимания рекомендую посмотреть видеоурок про иерархию шаблонов.

the_content( $more_link_text = null, $strip_teaser = false )

Параметры

$more_link_text
(строка) В этом параметре можно указать текст ссылки «Далее». Читайте также о других способах изменения текста ссылки.
$strip_teaser
(логическое) Нужно ли в полной версии поста обрезать то, что находится перед тегом <--more-->? true — нужно, false — не нужно.

Функция ничего не возвращает.

Пример 1. Выводим контент, изменив при этом текст ссылки «Далее»

По сути в данной ситуации всё, что нам нужно сделать, это задать первый параметр функции.

the_content( 'Узнать подробнее &rarr;' );

В этот параметр вы даже можете передать заголовок записи/страницы функцией the_title(), вот так примерно:

the_content( 'Узнать подробнее про  ' . the_title( '', '', false ) );

Пример 2. Включаем или отключаем обрезку по тегу <!—more—>

Если функция the_content() работает не совсем так, как нам хотелось бы, например обрезает контент по тегу <!--more-->, когда мы этого не хотим, или наоборот, не обрезает, когда хотим, то мы можем изменить это поведение функции при помощи глобальной переменной $more.

Для этого нам нужно:

  1. Определить глобальную переменную перед циклом global $more;
  2. Затем, уже непосредственно перед функцией the_content(), присвоить ей значение 0 (отображать анонсы) или 1 (отображать целиком весь пост), например $more = 0;.

Пример:

global $more;
while( have_posts() ) : the_post();
	$more = 1; // отображаем полностью всё содержимое поста
	the_title(); // эта функция выводит заголовок
	the_content(); // выводим контент
endwhile;

Подробнее про основной цикл читайте / смотрите видеоурок здесь.

Второй пример — возможно вы уже читали пост про прилепленные записи. Так вот, используя условный тег is_sticky(), мы можем сделать так, чтобы для прилепленных записей контент отображался целиком, а для всех остальных записей выводились только анонсы.

global $more;
while( have_posts() ) : the_post();
	if( is_sticky() ) : // проверяем, является ли текущая запись прилепленной
		$more = 1; // полный пост
	else :
		$more = 0; // анонс
	endif;
	the_title(); // заголовок
	the_content('Подробнее &rarr;'); // контент
endwhile;

the_content — изменяем содержимое поста перед выводом

Как я уже говорил, этот фильтр очень популярен и используется во многих плагинах. Его даже используют для добавления ссылок на похожие записи в конце поста.

add_filter( 'the_content', 'true_related_posts_after_content', 25 );
 
function true_related_posts_after_content( $content ) {
	$related_posts = ''; // предположим, что это какой-то код, например код для вывода похожих записей
	return $content . $related_posts; // добавляем сразу после содержимого поста
}

Очень рекомендую обратить на этот фильтр внимание, так как благодаря ему WordPress делает с контентом страницы очень много всего перед выводом, например:

  1. Ререндерит блоки, благодаря чему мы можем изменять вывод блоков, как в этом примере.
  2. Производит автоматическую замену кавычек и других символов функцией wptexturize().
  3. Преобразует символы типо :) в смайлики.
  4. Применяет функцию wpautop() для расстановки HTML-тегов абзацев <p> и переносов строки <br>.
  5. Убеждается, что в контенте нет шорткодов, обёрнутых в <p>...</p>, если да, то удаляет этот тег.
  6. Затем оборачивает вложения в тег <p>.
  7. Фильтрует такие теги как <img> и <iframe>, чтобы добавить к ним атрибуты srcset, sizes и loading, которые могли не существовать на момент создания поста.
  8. Если сайт использует https://, то заменяет все http:// на https:// в контенте.
  9. Применяет шорткоды функцией do_shortcode().
  10. Ещё применяется функция capital_P_dangit(), которая исправляет неправильное написание WordPress (например, когда пишут с маленькой буквы: WordPress или wordpress).

Если для вывода контента вы используете например функцию get_the_content(), то ничего из этого применяться не будет!

Миша

Впервые познакомился с WordPress в 2009 году. Организатор и спикер на конференциях WordCamp. Преподаватель в школе Нетология.

Если вам нужна помощь с сайтом или разработка с нуля на WordPress / WooCommerce — пишите. Я и моя команда будем рады вам помочь!

Комментарии — 7

Оставить комментарий

Если вы хотите добавить код, не забудьте обернуть его в <pre lang="php"></pre>, если же код – меньше одной строчки, то можно и в <code></code>.