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

Владислав Белецкий
Владислав Белецкий .
Категория:
Комментариев: 0

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

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

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

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

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

Параметры

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

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

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

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

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

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

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

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

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

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

Пример:

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('Подробнее →'); // контент
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 делает с контентом страницы очень много всего перед выводом, например:

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

Подписаться
Уведомить о
guest
0 комментариев
Межтекстовые Отзывы
Посмотреть все комментарии