По умолчанию в WordPress записи выводятся в порядке их опубликования на блоге. Хронологическая последовательность оправдывает себя в большинстве случаев. Однако для некоторых проектов будет крайне удобно упорядочение записей по алфавиту, например в различных каталогах игр, кратких энциклопедиях, словарях и т. п. В WordPress это можно сделать следующим образом.
Для начала определитесь, где бы вы хотели выводить записи по алфавиту. Вряд ли это будет актуально для главной страницы, но если так, то вам следует отредактировать файл шаблона index.php. Найдите в нем строку:
1 | if ( have_posts () ) : while (have_posts()):the_post(); |
и замените её на такой вариант:
1 2 | query_posts($query_string.'&orderby=title&order=asc'); if (have_posts()) : while (have_posts()) : the_post(); |
Теперь на главной странице вашего сайта записи будут выводиться в алфавитным порядке, исходя из заголовка материала. В том случае, когда на главной странице у вас находится не лента новостей, а каталог из множества кратких позиций, такой вывод будет весьма оправдан.
Вывод записей по алфавиту в категории WordPress
Вывод записей по алфавиту в категории осуществляется редактирование файла category.php. В этом случае, если вам необходимо упорядочить материалы во всех категориях, просто повторите предыдущую замену. Если же вам необходимо установить порядок вывода записей только в одной из категорий (например, только в ней вы публикуете в ней обзоры книг или фильмов), то вставка будет чуть сложнее. Найдите в файле category.php уже известную строчку:
1 | if ( have_posts () ) : while (have_posts()):the_post() |
и замените её следующей конструкцией:
1 2 3 4 | if ( in_category( 'X' )) { query_posts($query_string.'&orderby=title&order=asc'); } else { } if (have_posts()) : while (have_posts()) : the_post(); |
Заметьте, что в данном коде есть переменная X (первая строка). Вместе данной переменной вам нужно ввести либо ID категории, либо её ярлык, отображаемый в ссылке (например, у данной категории это wordpress). Сохраните все изменения и проверьте работу кода. В категории, которую вы указали в коде, записи будут выводиться по алфавиту.
Если вы хотите переупорядочить все свои записи с помощью кода в файле functions.php, то это также очень просто. Для этого нужно использовать действие pre_get_posts в WordPress.
1 2 3 4 5 6 7 8 9 10 11 12 13 | function wpex_order_category( $query ) { //выход, если это администратор или это не основной запрос if ( is_admin() || ! $query->is_main_query() ) { return; } // упорядочить архивы категорий по названиям в порядке возрастания if ( is_category() ) { $query->set( 'order' , 'asc' ); $query->set( 'orderby', 'title'); return; } } add_action( 'pre_get_posts', 'wpex_order_category', 1 ); |
Этот метод является единственным методом, который можно использовать без какого-либо технического образования, и самый простой в случае, если необходимо вывести записи нестандартного типа в алфавитном порядке.
Если вам потребуется вывод записей в обратном алфавитном порядке с буквы Я. То чтобы выполнить вывод от большего к меньшему, замените в предлагаемых вставках order=asc на order=desc. Как видите, это очень просто сделать свой блог на WordPress намного удобнее и иметь какое-то различие от других похожих блогов.