Вывести контент страницы wordpress – get_the_content() — Получает контент текущей записи (поста). Используется внутри Цикла WordPress. Функция WordPress.

выводит контент поста в WordPress

  0.71

wp-includes / post-template.php

Функция возвращает содержимое текущего поста. Работает только в цикле.

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

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

  • записей single.php,
  • страниц page.php,
  • произвольных типов постов single-{тип_поста}.

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

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

Что делать, если у вас выводится полный текст поста, а вы хотите выводить анонсы со ссылкой «Далее»?

Всё, что нам потребуется сделать, это:

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

Пример:

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

Читайте также описание функции the_title().

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

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

Как вывести содержимое конкретного поста, зная его ID?

В отличие от функций get_the_title() и get_permalink() функции для вывода контента поста не имеют параметра с ID поста, так что нам не удастся получить или вывести контент какого-либо определенного поста вне цикла этим способом.

Другой способ — функция get_post().

$my_post_obj = get_post( $my_post_id ); // параметр функции - ID поста, содержимое которого нужно вывести
echo $my_post_obj->post_content;

В этом примере (который выше) у нас выведется неотфильтрованный контент — в том самом виде, в котором он находится в базе данных. Так как очень многие плагины в WordPress применяют свои фильтры к контенту постов, то такой способ хорош, если вы хотите обойти этот фильтр.

Если фильтр the_content в данном случае вам нужен, тогда наш пример изменится следующим образом:

$my_post_obj = get_post( $my_post_id );
$the_content_filtered = apply_filters( 'the_content', $my_post_obj->post_content );
echo str_replace( ']]>', ']]>', $the_content_filtered );

Фильтры

the_content_more_link — позволяет изменить кнопку «Далее»

Как же так, ведь текст кнопки «Далее» можно указать в первом параметре функции the_content()? Дело в том, что там вы можете указать только текст ссылки, а фильтр the_content_more_link позволяет полностью изменить её HTML код.

В качестве примера добавим к ссылке «Далее» HTML-атрибут target="_blank".

function true_target_blank_to_read_more( $more_link, $more_link_text ) {
	// Параметры, передаваемые из фильтра, сейчас мы их не будем использовать
	// $more_link_text - анкор (текст) ссылки по умолчанию
	// $more_link - HTML ссылки по умолчанию
	global $post;
	return ' <a href="' . get_permalink() . '#more-' . get_the_id() . '" target="_blank">Подробнее →</a>';
}
 
add_filter( 'the_content_more_link', 'true_target_blank_to_read_more', 10, 2 );

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

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

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

Миша

В последние годы я долго не знал, что мне делать с сайтом misha.blog, ведь он практически не приносит никакого профита, но недавно я осознал, что моя миссия – способствовать распространению WordPress. Ведь WordPress – это лучший движок для разработки сайтов – как для тех, кто готов использовать заложенную структуру этой CMS, так и для тех, кто предпочитает headless решения.

Сам же я впервые познакомился с WordPress в 2009 году. Организатор WordCamp. Преподаватель в школах Epic Skills и LoftSchool.

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

Как вывести содержимое одной страницы (тело) на любые другие в WordPress? — Хабр Q&A

Соприкасаюсь с проектом (сайт) на WordPress, столкнулся с задачей — как подставлять контент одной страницы во все другие:
Пример структуры сайта (многие сайты созданы по такому типу):
  • Меню (…)
  • Шапка (%заголовок% и %кнопка%)
  • Контент (статичные данные: преимущества, наши работы, наши клиенты …)
  • Подвал

Меню, шапка и подвал — статичные элементы относительно выводимого содержимого страницы.
Но контент — должен быть единым для любой созданной страницы.
Мои видения решения такого вопроса:
Можно поступить следующим образом:
1) Решение: При создании новой страницы настраивать заголовок и шапку в индивидуальном порядке (в интерфейсе WP), а тело (контент) заполнять путем «Скопировал — Вставил» нужного содержимого.
Минусы: Когда придет время менять данные, нужно будет открывать и корректировать тело каждой страницы.
2) Решение: Вмешательство в исходный код шаблона используемой темы
Минусы: Рядовому пользователю без помощи программиста (верстальщика) будет невозможно изменить выводимые данные на все страницы
3) Решение: Использовать плагин, который позволяет выводить нужную страницу (или заготовку, которую можно отредактировать как простую страницу отдельно) — на любую другую в рамках интерфейса WP (редактора страницы, например)
Минусы: О существовании таких плагинов я не знаю, есть риск не обнаружить такой плагин
Возможно, пункт 3 — уже встроен в базовый функционал WordPress, но тщетные попытки обнаружить информацию по данному вопросу на поисковых площадках и в информационно-образовательной среде (YouTube, Справка WordPress) — успехом не увенчались.

Весь вопрос простым языком можно назвать таким:
Как средствами CMS WordPress настроить выдачу содержимого любой созданной страницы таким образом, чтобы в блок тела страницы промежуточно добавлять тело (содержимое) другой страницы.

  • «любой созданной страницы» — существующие и новые страницы, например /index/, /contacts/, /kak-sdelat-svoimi-rukami/, /…/ и т.п.
  • «другой страницы» — любая другая страница, из которой нам нужно брать только контент без заголовков и без подвала.
  • «тело (содержимое)» — содержимое страницы, которое можно создать в интерфейсе редактора страницы WordPress

Content Views — оригинальный вывод постов на страницах WordPress

Плагин Content Views помогает решить задачу нестандартного оформления главной (и других) страниц блога. По умолчанию цикл (loop) в шаблоне сайта выводит посты блога друг за другом, начиная с самого нового. С помощью редактирования шаблона вы можете задать отображение даты, заголовка, категорий, автора и некоторых других параметров, но логику выборки постов особо поменять не получится (без добавления специального PHP кода и функций). Поэтому сегодняшний модуль может пригодиться многим новичкам и вордпресс разработчиками.

Он позволяет настраивать отображение записей на главной и других страницах блога без каких-то специализированных знаний в программировании — скачать его можно отсюда. Название на странице репозитория какое-то слишком длинное «Query posts by category… and display posts on page in grid layout without coding — Content Views», если устанавливаете через админку вордпресс, попробуйте поискать по ключу Content Views. Требуемая версия WP выше 3.3 и до 4.2.2 (на момент написания поста), скачали модуль более 10тыс. раз, рейтинг практически максимальный!

Возможности модуля достаточно большие и касаются не только главной страницы. С его помощью вы можете:

  • отображать на главной посты по категориям в адаптивном дизайне;
  • выводить записи блога в 2/3 колонки;
  • выводить посты в нужном формате на определенной странице;
  • выводить заметки по нужному тегу или автору;
  • для отображаемых записей выбрать сортировку по заголовку или дате;
  • заменить стандартную навигацию на более красивую;
  • отображать в анонсах постов миниатюры разных размеров.

В принципе, вы могли бы настроить вывод последних постов по категории с помощью этого решения, о котором я когда упоминал (через WP_Query). Но не каждый пользователь в этом разберется, а плагин Content Views значительно упрощает задачу. Рассмотрим детальнее работу с модулем.

После установки в админке появится раздел плагина

Content View Settings. Для создания нового элемента вывода постов кликаем по ссылке «Add New».

Здесь задача делится на 2 составляющих:

  • Filter Settings — задание параметров выборки записей;
  • Display Settings — формат отображения постов.

На первом шаге вы определяете тип записи — страница или пост. Можно при этом включить в список или исключить из него конкретные ID. Параметр Limit определяет число элементов.

Чуть ниже в Advanced filters происходит все самое интересное. На скриншоте вы видите как я отметил параметр Taxonomies и задал выборку по рубрикам. Дальше определил категорию из которой будут выводиться посты. Есть возможность сделать выборку по нескольким рубрикам или исключить какую-то из общего списка.

Кроме параметра Taxonomies есть:

  • Status — статус отображаемых записей. Внимание! Если вы хотите показывать только опубликованные посты, то также задайте этот параметр (значение Publish).
  • Order & Orderby — варианты сортировки.
  • Search — отображение записей по поисковой фразе.
  • Author — выборка по конкретному автору.

Вкладка Display Settings содержит настройки по внешнему виду блока:

Здесь есть три формата отображения: сетка (Grid), раскрывающийся список (Collapsible List), блоки с перелистыванием (Scrollable List). Для «сетки» можно выбрать число элементов в столбце и/или 2 колонки при отображении. Также отмечаете поля, которые требуется выводить у каждого элемента: дата, заголовок, текст, миниатюра. Можно выбрать открытие ссылки в новом окне.

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

После указания всех параметров, сохраните элемент. В меню «All views» можете увидеть список всех созданных блоков и шорткоды для их вставки. Размещать их можно на обычных страницах блога или в шаблоне через функцию вызова шорткода:

<?php echo do_shortcode('[pt_view]') ?>

<?php echo do_shortcode(‘[pt_view]’) ?>

Напоследок хочется сказать, что у плагина есть Pro версия, которая обладает чуть большим числом опций и настроек. Стоимость ее 29 долларов за 1 или 89 за 5 сайтов. Тут добавляется 2 дополнительных варианта отображения Pinterest, Timeline, идет полная замена отображения последних постов в архивах категорий, тегов, авторов, появляется поддержка WooCommerce, добавляется механизм Drag & drop, а также много разных параметров для внешнего вида блоков. В принципе, бесплатной версии для решения задачи оригинального оформления главной страницы WordPress сайта мне хватило.

Понравился пост? Подпишись на обновления блога по RSS, Email или twitter!

Вывести на конкретной странице — wordpress | Кабинет Веб-мастера

Вывести на конкретной странице — wordpress

Бывают такие ситуации, когда на определенной странице сайта под управлением wordpress, нужно вывести какой-нибудь блок или текст. Для реализации этой задачи можно воспользоваться несколькими способами: другой шаблон для страницы, произвольные поля или проверка на нужную страницу прямо в коде (не создавая дополнительный шаблон). Последний способ мы сегодня и рассмотрим.

Для начала нам нужно узнать ID страницы. Делается это достаточно просто. Идем в список страниц, наводим мышку на нужную страницу, в левом нижнем углу появится ссылка. В этой ссылке ищем буквы: …post=1…. Вот эта цифра и есть id. Также можно посмотреть id находясь на нужной странице и в верхней плашке администратора наведя на Редактировать — снизу также отобразится ссылка с id. В любом случае это довольно просто.

Теперь идем в визуальный редактор или на ftp. Нам нужен шаблон page.php (хотя такую проверку можно делать не только в этом шаблоне). В нужном месте проверим, что страница имеет id=1 и выведем там приветственный текст:

<?php if ( is_page('1') ) { ?>
 
	Всем привет!
 
<?php } ?>

Ничего сложного. Если нам нужно также сделать это для дочерних (вложенных) страниц, то стоит модифицировать код до такого:

<?php if (in_array('1', $post->ancestors) || is_page('1') ) { ?>
 
	Всем привет!
 
<?php } ?>

Помимо прямого условия, можно задать альтернативный текст, если условие не выполнится. В нашем случае другой текст появится на всех страницах, кроме страницы с id=1.

<?php if (in_array('1', $post->ancestors) || is_page('1') ) { ?>
 
	Всем привет!
 
<?php } else { ?>
 
	Всем пока!
 
<?php } ?>

Вот пожалуй и все! Экспериментируйте и все получится!

Добавить комментарий

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