Сегодняшний небольшой пост я посвящу функции query_posts и тому, как с помощью нее можно выводить обновленную запись на первое место на главной странице. Иногда, в зависимости от структуры сайта и способа его ведения, возникает необходимость обновленные или дополненные записи вывести на первое место на главной странице. При таком раскладе запись, находящаяся уже не на главной странице, пермещается на первое место и располагается выше остальных до тех пор, пока на сайте не появится новая. Так будет происходить при каждом обновлении записи, при этом дата опубликовывания всегда будет оставаться первоначальной. Я уже писал в одном из предыдущих постов о функции query_posts, которая позволяет выводить записи согласно заданным критериям и как с помощью нее вывести на сайте случайные записи. C помощью нее, по заданному критерию, можно также и выводить обновленную запись на первое место на главной странице. Давайте вновь вернемся к этой функции и посмотрим, какие параметры нужно задать ей для вывода обновленных записей на первое место.
Функцию с заданными параметрами необходимо добавить непосредственно перед началом основного цикла. Найдите в вашем шаблоне начало основного цикла, который начинается со строчки:
<?php while ( have_posts() ) : the_post(); ?>
и вставьте перед ней строку с функцией:
<?php query_posts($query_string.'orderby=modified'); ?>
либо допишите функцию в условие проверки на наличие постов:
<?php if ( have_posts() ) : query_posts($query_string.'orderby=modified'); ?>
С параметром ‘orderby=modified‘ все предельно понятно, он сортирует записи согласно их обновлению, а вот о переменной $query_string поговорим поподробнее. Глобальная переменная $query_string сохраняет постоянные ссылки ваших постов, которые перемещаются на главной странице на первое место после их обновления.Дело в том, что если не использовать эту переменную, то обновленные посты будут перемещаться не только на главной странице, но и в категориях, в которых они размещены, а также в архивах. Думаю, понятно, что перемещение записи приведет к изменению ее постоянной ссылки, а то значит, что по прежней ссылке вашу запись уже будет невозможно найти. Вот поэтому глобальная переменная $query_string позволяет сохранить информацию о расположении записей на страницах и в категориях.