Posts2Posts, wp_query и проблема с orderby

14 авг. 2013 г., 21:06:47
Просмотры: 367
Голосов: 0

Я уже несколько часов бьюсь над этой проблемой и зашел в тупик. Следующий запрос отказывается принимать любые директивы orderby. Примечание: Этот код выполняется на странице single-cpt.php в рамках стандартного цикла WordPress:

<?php $args = array(
  'orderby' => 'title',      // Сортировка по заголовку
  'order' => 'ASC',         // По возрастанию
  'suppress_filters' => true, // Отключение фильтров
  'nopaging' => true,       // Без пагинации
  'connected_type' => 'directory_to_projects', // Тип связи
  'connected_items' => get_queried_object_id(), // Связанные элементы
);

$new_connected = new WP_Query($args);

// Отображение связанных записей
if ( $new_connected->have_posts() ) { ?>

    <h3>Проекты</h3>
    <ul>
        <?php while ( $new_connected->have_posts() ) : $new_connected->the_post(); ?>
            <li><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></li>
        <?php endwhile; 
        endif;
        wp_reset_postdata(); ?>
    </ul>
<?php } ?>

Я подтвердил, что у меня не установлены плагины для сортировки страниц или записей, которые могли бы влиять на 'orderby'. Изменение 'orderby' на другие значения (name, date, meta_value и т.д.) не дает никакого эффекта.

Обновление: На самом деле не работают никакие параметры wp_query. Я попробовал добавить 'posts_per_page' => 2,, и это тоже не дало эффекта. Должно быть, это связано с плагином posts2posts, но, кажется, его поддержка прекращена. :( Кто-нибудь сталкивался с подобным?

Есть идеи? Большое спасибо за помощь!

1
Комментарии

Если вы деактивируете плагин Posts2posts, возвращает ли запрос правильные записи?

Charles Clarkson Charles Clarkson
14 авг. 2013 г. 21:12:55
Все ответы на вопрос 1
0

У меня нет опыта работы с posts2posts, но чтобы увидеть запрос, который wp_query выполняет в вашей базе данных, перед оператором if добавьте echo $new_connected->request. Это очень помогло мне при отладке wp_query, когда я не мог понять, какие параметры не работают. Выводом будет SQL-запрос, который будет выполнен в БД. Таким образом, вы можете скопировать этот запрос в phpmyadmin, чтобы увидеть результаты. Возможно, это поможет вам лучше понять проблему!

P.S. Использование 'orderby' => 'meta_value' требует указания 'meta_key' => 'your_metakey_name', иначе система не узнает, по какому ключу получать значение для сортировки.

18 авг. 2013 г. 20:47:06