Отображать количество кол-во сообщений с одинаковым мета-знаком meta_key meta_value

Я хочу отобразить список сообщений, упорядоченных определенной мета-ключю. Мои сообщения имеют следующие настраиваемые поля: author_lastname и author_firstname . Пока это работает хорошо. Сообщения отображаются правильно. Мой запрос:

  <? $category = $wp_query->get_queried_object(); $query = new WP_Query( array ( 'post_type' => 'post', 'cat' => $category->cat_ID, 'posts_per_page' => -1, 'orderby' => 'author_lastname', 'meta_key' => 'author_lastname', 'meta_key' => 'author_firstname', 'order' => 'ASC' ) ); if ( $query->have_posts() ) : while ( $query->have_posts() ) : $query->the_post(); ?> <li><a href="<?php the_permalink(); ?>"><?php echo get_field('author_lastname') . ', ' . get_field('author_firstname') . ' (' . count($query) . ')'; ?></a></li> <? endwhile; wp_reset_query(); endif; ?> 

Теперь предположим, что две должности имеют один и тот же автор (те же значения в author_firstname и author_lastname ).

Я получу этот результат:

 Einstein, Albert (1) Einstein, Albert (1) Tesla, Nikola (1) 

Это не то, что я хочу. Как я мог это получить?

 Einstein, Albert (2) Tesla, Nikola (1) 

Заранее спасибо за вашу помощь!

Вот простой способ добиться того, что вам нужно с таксономиями.

Предположим, что у вас есть

  1. зарегистрирована таксономия «Авторы».
  2. Создал отправленный и назначенный один автор на этот пост -> Альберт Эйнштейн 3.Вы хотите только общее количество сообщений.

Теперь вы хотите получить все сообщения с таксономией = Авторы и напечатать каждое имя автора и количество сообщений с этим автором.

 //Get all authors that have been assigned to a post $authors = get_terms("authors"); //You can use print_r to see the values in the array echo "<pre>"; //print_r($authors); echo "</pre>"; //Loop through each author foreach($authors as $author){ //Search posts with the author name $query = new WP_Query(array( "post_type"=>"post", 'tax_query' => array( array( 'taxonomy' => 'authors', 'field' => 'term_id', 'terms' => $author->term_id ) ) )); echo "<h2>Found " . $query->found_posts . " posts with author = " . $author->name . "</h2>"; } 

Вы можете форматировать вывод, как хотите. WordPress автоматически создает структуру ссылок (в зависимости от настройки ваших постоянных ссылок). Поэтому вам просто нужно создать шаблоны для созданных ссылок wordpress.

ОБНОВИТЬ:

Я предполагаю, что когда вы идете в / author / einstein-albert, вы уже можете видеть все сообщения с термином einstein-albert.

Если это так, вам просто нужно сформировать ссылку, используя объект, который у вас есть в цикле foreach:

Нечто подобное должно быть в цикле foreach:

 echo "<a href='/" . $author->taxonomy . "/" . $author->slug . "'>$author->name ($query->found_posts)</a>"; That should echo <a href="/author/einstein-albert">Albert Einstein(2)</a>