Функция get_posts – выводим записи в любом месте шаблона wordpress

В WordPress есть прекрасная функция <?php get_posts(); ?>, которая позволяет выводить записи WordPress в любом месте шаблона. get_posts хороша тем,  что она не перезаписывает базовый цикл WordPress, а создает новый произвольный цикл, поэтому ваш стандартный вывод постов на главной странице не изменится.

Как выводить посты с помощью get_posts

Предположим, что нужно вывести заголовки последних 6 записей из рубрики "Новости" в отдельном блоке в сайдбаре (к примеру, рубрика "Новости" имеет id=3). Тогда в файл sidebar.php нужно добавить следующий код:

<?php
$my_posts = get_posts('numberposts=6&category=3');
foreach ($my_posts as $post) :
setup_postdata($post);
?>
<h2 class="entry-title"><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></h2>
<?php endforeach; ?>

Критерии отбора записей могут быть различны. Например вы можете вывести записи из нескольких категорий, указав их id через запятую в параметре "category=номер категорий", или наоборот исключить записи определенных категорий, указав их id со знаком "-".

Параметры вывода постов для функции get_posts

Функция get_posts может принимать различные параметры, знакомтесь.

numberposts - определяет количество выводимых постов. Чтобы убрать это ограничение нужно поставить значение -1. Значение 0 будет выводить столько постов, сколько уазано в настройках WordPress.

category - определяет из каких категорий нужно выводить посты. Необходимо указывать ID категорий. ID категорий со знаком минус будут исключены из вывода. Можно указать сразу несколько id категорий, указав из через запятую.

tag - выводит записи имеющие определенные метки. Необходимо указывать slug метки - альтернативное имя. Если указать несколько меток через запятую, то будут выведены все записи, имеющие хотя бы одну из этих меток. Если указать несколько меток через пробел, то будут выведены только те посты, которые имеют все эти метки одновременно.

orderby - сортирует показанные посты. Сортировать посты можно по нескольким критериям:

  • 'author' - сортировка по ID авторов
  • 'category' - сортировка по ID категорий
  • 'content' - сортировка по контенту
  • 'date' - сортировка по дате создания записи
  • 'ID' - сортировка по ID самой записи
  • 'menu_order' - сортировка по полю menu_order. Используется для постоянных страниц и прикреплений (картинки, файлы и т.п.)
  • 'mime_type' - сортировка по MIME типу
  • 'modified' - сортировка по дате изменения
  • 'name' - сортировка по альтернативному имени (slug)
  • 'rand' - Случайная сортировка
  • 'status' - сортировка по статусу (черновик, опубликовано и т.п.)
  • 'title' - сортировка по названию
  • 'parent' - сортировка по ID родителя (parent ID)
  • 'password' - сортировка по паролю
  • 'type' - сортировка по типу

order - порядок сортировки, "ASC" - сортирует в прямом порядке, "DESC" - сортирует записи в обратном порядке.

meta_key и meta_value - выводит записи имеющие указанное произвольное поле (meta_key) со значением (meta_value). Необходимо определить два параметра, иначе ни один из них не будет работать.

post_type - выводит посты определенного типа: post - посты, page - страницы, attachment - прикрепленные записи, any - все записи.

Я привел неполный список параметров, по которым можно выводить посты в любом месте шаблона, полный список можно посмотреть в кодексе WordPress.