Вопрос или проблема
Шаблон архива моей темы использует это для цикла,
<?php if (have_posts()) : while (have_posts()) : the_post(); ?>
Кажется, он упорядочен по заголовку поста, но мне нужно, чтобы они были упорядочены по ID поста. Думаю, мне просто нужна помощь с синтаксисом. Как мне изменить порядок списка постов или включить это в цикл? Я исследую этот вопрос, но если у кого-то есть простое решение, я буду очень признателен.
$args = array(
'orderby' => 'ID',
'order' => 'ASC',
);
$query = new WP_query ( $args );
Я использовал это Сортировать результаты по имени и в порядке возрастания на Archive.php
Изменил выбор шаблона архива, если(is_archive( ‘taxonomy-places.php’)):
Ответ или решение
Чтобы отсортировать результаты архивов по идентификатору поста в пользовательском шаблоне таксономии WordPress, вам потребуется внести изменения в ваш код запроса. Отсортировка по идентификатору поста (post ID) может быть достигнута с помощью параметров в объекте запроса WP_Query. Давайте рассмотрим, как это можно реализовать шаг за шагом.
Шаг 1: Определите параметры запроса
Вам нужно создать массив параметров для вашего запроса, включая параметры сортировки. Из вашего вопроса видно, что вы уже начали с этого. Ваша задача – отредактировать его так, чтобы он соответствовал вашим требованиям.
$args = array(
'post_type' => 'your_post_type', // Укажите тип поста, если необходимо
'orderby' => 'ID',
'order' => 'ASC',
'tax_query' => array(
array(
'taxonomy' => 'your_taxonomy_slug', // Укажите слаг вашей таксономии
'field' => 'slug',
'terms' => 'your_term_slug', // Укажите слаг термина, который необходим
),
),
);
$query = new WP_Query($args);
Шаг 2: Перепишите цикл для использования нового запроса
Теперь, когда у вас есть настроенный запрос, вам нужно изменить ваш основной цикл, чтобы использовать созданный объект $query
, вместо стандартного have_posts()
.
<?php if ($query->have_posts()) : ?>
<?php while ($query->have_posts()) : $query->the_post(); ?>
<!-- Ваш код для отображения поста -->
<h2><?php the_title(); ?></h2>
<div><?php the_content(); ?></div>
<?php endwhile; ?>
<?php wp_reset_postdata(); ?>
<?php else : ?>
<p>Посты не найдены.</p>
<?php endif; ?>
Шаг 3: Обработка отображения и сброс данных
Не забудьте сбросить данные поста с помощью wp_reset_postdata()
, чтобы избежать конфликтов с другими запросами, которые могут быть выполнены ниже в коде.
Шаг 4: Тестирование
После внесения изменений загрузите страницу архивов с вашим новыми параметрами запроса и проверьте, что посты отображаются в желаемом порядке (по идентификатору).
Заключение
Таким образом, чтобы отсортировать результаты архива по идентификатору поста в пользовательском шаблоне таксономии, вам нужно создать новый объект WP_Query
с корректными условиями и параметрами сортировки, а затем использовать его в вашем цикле. Этот простой подход позволит вам кастомизировать вывод постов в соответствии с вашими потребностями.
Если у вас есть дополнительные вопросы или нужна помощь в дальнейшей настройке, не стесняйтесь писать!