Настройка пользовательского порядка сортировки записей внутри категории

22 авг. 2011 г., 15:32:01
Просмотры: 23.1K
Голосов: 6

У меня есть настроенная категория, которая включает несколько записей. По дизайну это не блог, а список сотрудников. В настоящее время все сотрудники имеют свои собственные записи в этой категории. Я хотел бы иметь возможность сортировать порядок их отображения в родительской категории.

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

Буду благодарен за любую помощь.

http://gointrigue.com/beta/faculty/

Дополню: По ссылке, которую я предоставил, вы попадете на страницу категории, которую я создал - /faculty/. На этой странице категории у меня есть несколько записей. WordPress автоматически отображает их в порядке создания, при этом самые недавно созданные записи отображаются первыми.

Я хочу отображать их в своем собственном порядке. Как это сделать?

0
Все ответы на вопрос 2
7

Теперь, когда я лучше понимаю суть проблемы, я бы рекомендовал использовать произвольные поля для сортировки ваших записей. Вы можете создать произвольное поле (например, "order") и использовать его для указания порядка ваших записей. Затем вам нужно будет использовать пользовательский запрос для сортировки этих записей при их отображении. Вы можете использовать такой запрос:

$args = array(
    'meta_key' => 'order',
    'orderby' => 'meta_value',
    'order' => 'ASC'
);

$custom_query = new WP_Query();
$custom_query->query($args);

if($custom_query->have_posts())
{
    while($custom_query->have_posts())
    {
        $custom_query->the_post();

        // Выполняем действия внутри цикла
    }
}

Для получения дополнительной информации обо всех аргументах, которые можно использовать для создания пользовательских запросов, пожалуйста, ознакомьтесь с документацией по классу WP_Query.

23 авг. 2011 г. 06:48:40
Комментарии

Спасибо! Я нашел плагин, который почти подошел бы, но он не ПОЛНОСТЬЮ настраиваемый. Просто шел с кучей предопределенных порядков. Но он все равно не обновлялся. ВОПРОС: в какие файлы я должен добавить свой код для нового произвольного поля? И в какой файл поместить код для пользовательского запроса?

jkupczak jkupczak
23 авг. 2011 г. 15:38:55

Для произвольных полей не нужен новый код. Они автоматически являются частью экрана редактирования. Если произвольные поля не отображаются по умолчанию, посмотрите на ссылку "Настройки экрана" в верхнем правом углу экрана редактирования, чтобы включить произвольные поля. Вам нужно будет использовать предоставленный мной код где-то в файлах темы. Ознакомьтесь с иерархией шаблонов для начала: http://codex.wordpress.org/Template_Hierarchy

tollmanz tollmanz
23 авг. 2011 г. 20:44:08

После некоторых проб и ошибок у меня получилось заставить это работать! Осталась только одна проблема. Сортировка работает некорректно, если я упорядочиваю записи с однозначными и двузначными числами, например: "8, 9, 10". Записи 1 и 10 оказываются рядом друг с другом, если я не введу 1 как "01". Есть ли способ в коде добавлять 0 ко всем однозначным числам, чтобы моему клиенту не пришлось это делать вручную?

jkupczak jkupczak
24 авг. 2011 г. 04:41:43

У меня возникла одна проблема с приведённым выше кодом. Похоже, что он перестаёт перебирать посты после вывода 10 записей. Я подумал, может быть, он игнорирует все числа больше 11. Но на самом деле он просто останавливается после отображения 10 постов в общей сложности. Есть идеи, почему так происходит?

jkupczak jkupczak
24 авг. 2011 г. 05:48:11

Простое решение проблемы сортировки — начать с 100, затем 101 и так далее. Он показывает только 10 постов, потому что по умолчанию используется значение, установленное в Настройки > Чтение > "На страницах блога отображать не более". Вы можете либо изменить это значение, либо, чтобы показать все посты, добавить 'posts_per_page' => -1 в массив args.

tollmanz tollmanz
24 авг. 2011 г. 08:59:02

Спасибо за совет! Добавление этого параметра в массив сработало. Не уверен, что сортировка постов с использованием 100, 101 и так далее намного лучше, чем 01, 02.

jkupczak jkupczak
30 авг. 2011 г. 02:38:38

Отлично. Большое спасибо за ответ. Сэкономили мне время @tollmanz

Ana DEV Ana DEV
27 дек. 2017 г. 10:13:07
Показать остальные 2 комментариев
2

Я немного запутался в вашем сообщении, так как думаю, что оно может касаться нескольких разных вопросов. Если вы спрашиваете, как упорядочить ваши категории в пользовательском порядке, пожалуйста, ознакомьтесь с плагином Custom Taxonomy Sort, который как раз это и делает. Вы можете указать порядок для каждого элемента таксономии.

22 авг. 2011 г. 18:17:03
Комментарии

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

В ссылке, которую я предоставил в своем первоначальном сообщении, вы попадете на страницу категории. На этой странице категории у меня есть несколько записей. WordPress автоматически отображает их в порядке создания, причем самая новая запись идет первой.

Я хочу отображать их в своем собственном порядке. Как это сделать?

jkupczak jkupczak
23 авг. 2011 г. 05:17:55

Теперь я лучше понимаю вашу задачу. Даю вам новый ответ.

tollmanz tollmanz
23 авг. 2011 г. 06:42:14