Как вывести записи текущей категории WordPress?
В WordPress записи в категории (или архиве) по умолчанию сортируются в хронологическом порядке (т.е. самые поздние записи располагаются выше), но зачастую нам требуется их вывести в обратном порядке или вообще произвольно. В частности, для моего блога потребовалось вывести уроки в обратном хронологическом порядке (сначала более ранние уроки).
Для этого в шаблоне категории category.php находим код:
<?php if (have_posts()) : while (have_posts()) : the_post();
get_template_part('post', 'category');
endwhile;
else :
get_template_part('post', 'noresults');
endif;
?>
и заменяем код на следующий:
<?php
$infocat = get_the_category();
$info = $infocat[0]->cat_ID;
$array = "orderby=date&order=ASC&cat=$info&showposts=10";
query_posts($array);
if (have_posts()) : while (have_posts()) : the_post();
get_template_part('post', 'category');
endwhile;
else :
get_template_part('post', 'noresults');
endif;
?>
Разберем код подробнее.
$infocat = get_the_category(); — определяет текущую категорию.
$info = $infocat[0]->cat_ID; — присваивает переменной $info ID текущей категории.
$array = "orderby=date&order=ASC&cat=$info&showposts=10"; — задает параметры выборки: сортировка по дате (orderby=date), в обратном хронологическом порядке (order=ASC), записи из категории с ID равным ID текущей категории (cat=$info), количество отображаемых записей 10 (showposts=10).
query_posts($array); — отбирает записи в соответствии с параметрами выборки выше.
Есть вопросы? Задайте их через форму комментариев.
Наконец-то я нашла то, что искала. Спасибо автор, отличная статья, мне помогло, хотя мне пришлось править другой файл. В шаблоне моего сайта нет файла category.php 🙂
Мария, спасибо за отзыв:)
Действительно, в некоторых темах на WordPress отсутствуют стандартные файлы.
В этом случае приходится искать файл, отвечающий за нужный раздел.
Сделать это можно при помощи инструмента «Просмотр кода элемента» в Google Chrome или «Fire Bug» в Mozilla Firefox.
а если рубрика дочерняя?
Добрый день!
Вам нужно вывести статьи в дочерней категории в определенном порядке?
Или Вам нужно получить нечто вроде списка:
категория 1
подкатегория 1
подкатегория 2
категория 2
подкатегория 1
подкатегория 2
подкатегория 3
и т.д.?