Intereting Posts
Создайте виджет Dashboard с формой, чтобы сохранить отчет команды В большой неприятности – Допустимый размер памяти 268435456 байт исчерпан Закажите результаты WP_Query в порядке, отличном от ASC или DESC Как изменить URL-адрес по умолчанию для ссылки «Сообщения»? добавить возможность роли автора для удаления вложений Проверка значений с помощью API настроек Коррумпированный дизайн / внешний вид WordPress WordPress Последнее сообщение с указанием названия Многоязычные пользовательские переписывающие URL-адреса Несколько логотипов в WordPress меню Работа с плагинами WordPress и шаблонами тем Добавление пользовательских размеров изображения в медиа-загрузчик Как я могу улучшить обработку разрыва строки в редакторе WYSIWYG? Перечислять сообщения терминов, но исключать один срок Переключено с query_posts на wp_query, разбиение на страницы больше не работает

Сортировка по имени – второй wp_query

Я использую следующий код, чтобы сортировать по имени на основе таксономии, а затем перечислить должности в каждой таксономии.

Первый запрос работает нормально для алфавитного списка таксономий.

Проблема, с которой я сталкиваюсь, заключается в том, что сообщения внутри каждой таксономии не указаны в алфавитном порядке. Есть идеи?

<ul style="margin: 10px 25px 45px 25px !important;"> <?php if (have_posts()) : while (have_posts()) : the_post(); ?> <?php //if (false == ($content = get_transient('os_travel_cache'))){ // ob_start(); $taxonomies = array( 'tax_one' => 'Taxonomy1', 'tax_two' => 'Taxonomy2', 'tax_three' => 'Taxonomy3', ); foreach($taxonomies as $taxonomy => $title) { // start div... cor column.. ?> <li> <div><h6><?php echo $title; ?></h6></div> <?php $terms = get_terms( $taxonomy, array( 'orderby' => 'name', 'order' => 'ASC', 'hide_empty' => true ) ); if (!is_wp_error($terms) && is_array($terms) && count($terms) > 0){ foreach($terms as $term){ $args = array( 'post_type' => 'os_book', 'tax_query' => array( array( 'taxonomy' => $term->taxonomy, 'field' => 'id', 'terms' => $term->term_id ) ) ); ?> <div class="term_container"> <div class="handler"><span id="ashplus"> + </span><?php echo $term->name; ?></div> <div> <ul class="list"> <?php $rp = new WP_Query( $args ); if ($rp->have_posts()) while ( $rp->have_posts() ) { $rp->the_post(); $name = get_field('fl_profile_name'); $location = get_post_meta(get_the_id(), 'fl_country', true); ?> <li data-location="<?php echo $location; ?>"><a href="<?php the_permalink();?>"><?php echo $name; ?></a></li> <?php } ?> </ul> </div> </div> <?php } } ?> </li> <?php } // $content = ob_get_contents(); // ob_end_clean(); // set_transient('os_travel_cache', $content, 1); // } // echo $content; ?> <?php endwhile; endif; ?> </ul> 

Сообщения не сортируются в алфавитном порядке, потому что вы не говорите WordPress, чтобы сортировать их таким образом. По умолчанию они будут отсортированы по дате в порядке потомства (сначала самые новые).

Что вы должны сделать, это изменить ваши аргументы WP_Query , добавив order и order , поэтому он должен выглядеть так:

 $args = array( 'post_type' => 'os_book', 'orderby' => 'title', 'order' => 'ASC', 'tax_query' => array( array( 'taxonomy' => $term->taxonomy, 'field' => 'id', 'terms' => $term->term_id ) ) ); 

PS. Полагаю, вы должны сортировать их по title а не по name . Результаты этих двух методов могут быть разными, и сортировка по имени не даст вам правильного алфавитного порядка в каждом случае (т.е. будет игнорировать акценты).

Я пытаюсь сортировать пользовательские сообщения по таксономии, используя приведенный ниже код, но он не работает. Он отображает результаты, но просто сортирует их в том порядке, в котором я ввел их в базу данных. Было бы очень полезно помочь. Я не кодер BTW.

  $args = array( 'post_type' => 'staff', 'order_by' => 'title', 'order' => 'asc', 'posts_per_page' => -1, 'tax_query' => array( array( 'taxonomy' => 'department', 'field' => 'slug', 'terms' => 'staff' ) ) );