Пользовательский тип сообщения – список сообщений на основе meta_key и отображение их по категориям таксономии CPT

Коротко:

  1. У меня есть пользовательский тип сообщения, называемый 'produkty'
  2. Внутри этого CPT у меня таксономия называется «kategorie_produktow» с условиями (список категорий товаров, например, в обычных сообщениях) – каждый продукт имеет ОДНУЮ категорию
  3. Внутри этого CPT у меня есть пользовательское поле под названием «produkt_nowosc» – оно используется для описания продукта как самого нового в предложении
  4. Я использую настраиваемый шаблон страницы для отображения всех CPT с 'product_new', установленным как 'tak' (да)

Чтобы отображать сообщения, описанные выше, я использую обычный WP_Query ():

$the_query = new WP_Query( array( 'post_type' => 'produkty', 'meta_key' => 'produkt_nowosc', 'meta_value' => 'tak', 'posts_per_page' => -1) ) ;

Он отлично подходит для отображения всех продуктов с каждой категорией продуктов (таксономия и срок). [product 1] [product 2] [product 3] [product 4]

Теперь я хотел бы отделить каждую таксономию CPT, это термин и показ сообщений с параметром produkt_nowosc чтобы это было так:

Post category 1 :

[product 1] [product 2] [product 3]

Post category 2 :

[product 4]

Какой тип запроса я должен использовать?

Solutions Collecting From Web of "Пользовательский тип сообщения – список сообщений на основе meta_key и отображение их по категориям таксономии CPT"

Вот код, переписываемый из сообщений и категорий в пользовательские типы сообщений и таксономии.

Благодаря @PieterGoosen для обеспечения первой версии.

http://pastebin.com/xKBepGQz

 <?php $args = array( 'post_type' => 'produkty', // your CTP name 'meta_key' => 'produkt_nowosc', // custom meta key for displaying, in my case: the newest product in offer 'meta_value' => 'tak', // field above set to 'yes' 'posts_per_page' => -1 ); $query = new WP_Query($args); $q = array(); while ( $query->have_posts() ) { $query->the_post(); // displaying the content of product box etc. $a = '<a href="'. get_permalink() .'">' . get_the_title() .'</a>'; $terms = wp_get_post_terms( $post->ID, 'kategorie_produktow', $args ); foreach ( $terms as $term) { $term_link = get_term_link( $term ); $b = '<span>'.$term->name.'</span>'; } $q[$b][] = $a; } wp_reset_postdata(); foreach ($q as $key=>$values) { echo $key; echo '<ul>'; foreach ($values as $value){ echo '<li>' . $value . '</li>'; } echo '</ul>'; } ?>