Query Posts, но только возвращает 1 из пользовательской таксономии?

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

Вот пример:

У меня есть обычная таксономия, называемая Автор. У меня 200 сообщений с разными авторами. Я хочу запросить и отобразить 6 сообщений, но я не хочу, чтобы один и тот же автор когда-либо повторялся в запросе. Это мой запрос ниже. Благодаря!

<?php $args = array('posts_per_page' => 6, 'orderby' => 'rand'); $taximg_loop = new WP_Query( $args ); while ( $taximg_loop->have_posts() ) : $taximg_loop->the_post();?> <?php endwhile; ?> <?php wp_reset_postdata(); ?> 

Solutions Collecting From Web of "Query Posts, но только возвращает 1 из пользовательской таксономии?"

Я думаю, что, используя стандартный WP_Query вы должны запускать 6 различных циклов, но это потрясающе. Но с помощью пользовательского запроса $wpdb вы можете сделать трюк …

 function get_unique_posts_tax( $taxonomy = 'category', $number = 10, $cpt = 'post') { global $wpdb; return $wpdb->get_results( $wpdb->prepare( "SELECT p.* FROM $wpdb->term_relationships JOIN $wpdb->term_taxonomy AS tt ON tt.term_taxonomy_id = $wpdb->term_relationships.term_taxonomy_id JOIN $wpdb->posts AS p ON p.ID = $wpdb->term_relationships.object_id WHERE tt.taxonomy = %s AND p.post_type = %s AND p.post_status = 'publish' GROUP BY $wpdb->term_relationships.term_taxonomy_id ORDER BY RAND() LIMIT %d", $taxonomy, $cpt, $number ) ); } 

Поместите эту функцию в functions.php после этого, вы можете

 $loop = get_unique_posts_tax( 'author', 6 ); if ( ! empty($loop) ) { global $post; foreach ( $loop as $post ) { setup_postdata($post); // Here goes your loop content... echo '<p>' . get_the_title() . '</p>'; } wp_reset_postdata(); }