Как выводить записи WordPress в обратном порядке

AdmiraПро WordPressLeave a Comment

Казалось бы, WordPress  достаточно продуманная CMS? на которой можно решить практически все задачи, но! Иногда возникают интересные задачи, которые требуют небольшой корректировки кода.  Например, отобразить записи в обратном порядке при просмотре архивов блога.

Зачем это нужно? К примеру для того, чтобы при просмотре архива по категории, человеку выводились записи не в порядке убывания, т.е. самая новая запись вверху, а в порядке возрастания, самая старая запись вверху и далее постранично к самой новой. Кстати, это также полезно для увеличения популярности старых записей вашего блога.

Собственно сделать это совсем не сложно, необходимо лишь немного отредактировать файл шаблонов, который отвечает за отображение архивных записей в блоге, файл этот называется archive.php.

Для этого достаточно добавить всего пару строк:

проверяем что человек просматривает архив по категориям:

1 <?php /* If this is a category archive */if(is_category()){?>

добавляем к стандартному запросу WordPress параметр сортировки:

2 <?php query_posts($query_string . «&order=ASC»); }?>

Эти две строки добавляются в файл archive.php до строк, отвечающих уже за вывод постов:

3 <?php if (have_posts()) : while (have_posts()) : the_post(); ?>

Собственно говоря и все, задача решена.

В разных шаблонах это может выполняться по разному, а в некоторых даже отсутствует файл archive.php, это можно исправить, просто скопировав файл index.php с новым именем и добавив необходимые изменения.

И конкретный пример

Реализация ежедневных медитаций на шаблоне Anarcho Notepad

Мне понадобилось изменить файл category.php для вывода в категориях месяца записей дней в возрастающем порядке

1 <?php /* If this is a category archive */ if (is_category()) { ?>

<?php query_posts($query_string . «&order=ASC»); } ?>

<?php if (have_posts()) : ?>

И файл archive.php — для вывода записей по теме (темы записей задаются метками) тоже в возрастающем порядке

1 <?php /* If this is a category archive */ if (is_tag()) { ?>

<?php query_posts($query_string . «&order=ASC»); } ?>

<?php while (have_posts()) : the_post(); ?>

Остались вопросы, пишем в комментариях.

 

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

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