Простой путь через категории
Самым простым способом организации страниц сущностей является, создание сущностей на категориях.
Например, если нам нужны такие сущности как:
товары, записи блога, баннеры, сотрудники, торговая сеть.
То вы буквально создаёте их на верхнем уровне рубрик, а их категории делаете подкатегориями.
Структура будет выглядеть так:
товары
бургеры
пиццы
роллы
шаурма
напитки
блог
наша кухня
анонсы событий
баннеры
на главную
галерея
сотрудники (для вывода на страницах)
повары
менеджеры
кассиры
торговая сеть
рестораны
склады
пункты доставки
А далее под каждую категорию создаёте шаблон
Это можно сделать как по id: category-5.php
так и по ярлыку категории: category-catalog.php или category-blog.php
Вопрос а как организовывать шаблон страницы, где нужно вывести по несколько элементов из разных категорий сгруппированными по категориям? Например на главной странице. В этом вам поможет один из запросов:
во-первых, проверьте содержимое переменной $wp_query. Может быть там уже содержится нужная вам информация.
pre_get_posts() – изменяет основной цикл до его выполнения.
get_posts() очень похож по использованию и принимает одни и те же аргументы (с некоторыми нюансами, такими как разные значения по умолчанию), но возвращает массив сообщений, не изменяет глобальные переменные и безопасен для использования в любом месте.
Публикация из рубрики на основе WP_Query.
WP_Query это класс, который поддерживает оба варианта за кулисами, но вы также можете создавать и работать с его собственным экземпляром. Немного сложнее, меньше ограничений, также безопасно использовать где угодно.
Вам нужно будет добавить следующий код в шаблоны, где вы хотите отображать последние посты из определенной категории.
<? $catquery = new WP_Query( 'cat=61&posts_per_page=5' ); ?>
<ul>
<? while($catquery->have_posts()) {
$catquery->the_post(); ?>
<li><a href="<?php the_permalink() ?>" rel="bookmark"><? the_title(); ?></a></li>
<? }
wp_reset_postdata();
?>
</ul>
Первая строка этого кода создает новый запрос WordPress с определенным идентификатором категории (cat=61) и ограничивает вывод 5 постами (параметр posts_per_page). Вам нужно заменить его собственным идентификатором категории. Он отображает только заголовок записи в списке.
Вы можете изменить его, чтобы отобразить полный контент, добавив следующий код:
<?php $catquery = new WP_Query( 'cat=61&posts_per_page=5' ); ?>
<ul>
<?php while($catquery->have_posts()) {
$catquery->the_post(); ?>
<li>
<h3>
<a href="<?php the_permalink() ?>" rel="bookmark"><?php the_title(); ?></a>
</h3>
<ul>
<li><?php the_content(); ?></li>
</ul>
</li>
<? } ?>
</ul>
<?php wp_reset_postdata(); ?>