Вывести записи из произвольного типа публикаций Toolset Types — WordPress
Изначально в cms WordPress есть 2 типа конечных сущностей - страницы и записи. И возникает логичный вопрос: "Что делать, если на сайте регулярно добавляются новости и отзывы?".
Самое простое - создать 2 рубрики - новости и отзывы и публиковать записи в них. Это полностью решает все проблемы. Но есть один небольшой недостаток - все записи простым списком (если не применять фильтр) будут отображаться в пункте меню: "записи". Но с сайтом могут работать люди, которым такой подход покажется неудобным и хочется, чтобы новости были отдельно, а отзывы отдельно. Давайте разберемся, как такого можно добиться.
Существует замечательный плагин - Toolset Types, который позволяет создать пользовательские типы публикаций. То есть наравне с записями мы спокойно создаем отзывы. В них даже можно сделать рубрики. И пишем отзывы туда. Более того, к таким отзывам можно даже добавлять произвольные поля, миниатюры и прочее. Функционал ничем не уступает обычным записям. Но давайте разберемся, как это потом вывести в шаблон?
Оказывается тоже очень просто. Такие типы публикаций используют для отображения шаблон archive.php. Достаточно создать его и они автоматически будут отображаться в соответствии с шаблоном. Если у вас несколько типов публикаций, то можно разделить их, создав для каждого шаблон вида archive-slug.php, где slug - наименование (краткий заголовок) вашего типа публикации.
Если вывести такие записи нужно, например, на главной странице, то можно воспользоваться query запросом, который будет выглядеть примерно вот так:
<?php $args = array('post_type' => 'reviews','publish' => true,'paged' => get_query_var('paged'),'posts_per_page' => 9,); query_posts($args); if ( have_posts() ) : ?> <?php while (have_posts()) : the_post(); ?> <h2 class="title"><?php the_title(); ?></h2> <?php endwhile; ?> <?php endif; wp_reset_query(); ?>
Здесь стоит обратить на слово reviews - которое означает slug вашего типа записи и на цифру 9, которая отвечает за количество выводимых записей.