Упорядочить результаты архива по идентификатору записи в шаблоне пользовательской таксономии

Вопрос или проблема

Шаблон архива моей темы использует это для цикла,

<?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 с корректными условиями и параметрами сортировки, а затем использовать его в вашем цикле. Этот простой подход позволит вам кастомизировать вывод постов в соответствии с вашими потребностями.

Если у вас есть дополнительные вопросы или нужна помощь в дальнейшей настройке, не стесняйтесь писать!

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

Капча загружается...