WordPress – получение сообщений по типу и категории пользовательских сообщений, причем каждая категория автоматически помещается в DIV

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

Мне нужно разработать запрос WordPress, который будет автоматически получать сообщения из определенного пользовательского типа сообщений, определять, как классифицируется каждая публикация, а затем выводить сообщения по категориям на страницу, причем каждая категория помещается в отдельный DIV.

Например, у меня есть пользовательский тип сообщения, называемый «Данные карты». В этом настраиваемом типе сообщений у меня есть иерархическая иерархия, которую я назвал «Категории», а внутри этой таксономии – несколько категорий «Категория № 1», «Категория № 2» и т. Д. И т. Д. В каждой категории есть несколько сообщений.

Таким образом, запрос должен получить список всех категорий в пользовательском типе сообщений, а затем выводить что-то вроде этого:

<div id="category-1"> <div class="post">This is a post in Category 1</div> <div class="post">This is another post in Category 1</div> </div> <div id="category-2"> <div class="post">This is a post in Category 1</div> <div class="post">This is another post in Category 1</div> </div> 

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

 <?php $cat_args=array(); $categories=get_categories($cat_args); foreach($categories as $category) { $args=array( 'category__in' => array($category->term_id), ); $posts=get_posts($args); if ($posts) { echo '<div class="cat" id="' . $category->slug.'" name="' . $category->name.'">'; foreach($posts as $post) { setup_postdata($post); ?> <?php the_title();?> <?php the_content();?> <?php } // foreach($posts echo '</div>'; } // if ($posts } // foreach($categories ?> 

Если бы кто-нибудь мог предоставить обновленный код для меня, чтобы попробовать, или рабочий пример, он был бы очень признателен.

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

 // for a given post type, return all $post_type = 'shows'; $tax = 'show-topic'; $tax_terms = get_terms($tax, array('orderby' => 'id', 'order' => 'ASC', 'exclude' => '135, 49, 25, 24, 54')); if ($tax_terms) { foreach ($tax_terms as $tax_term) { $args = array( 'post_type' => $post_type, "$tax" => $tax_term->slug, 'post_status' => 'publish', 'posts_per_page' => - 1, 'orderby' => 'title', 'order' => 'ASC', 'caller_get_posts' => 1 ); // END $args $my_query = null; $my_query = new WP_Query($args); if ($my_query->have_posts()) { echo '<h3>' . $tax_term->name . '</h3>'; while ($my_query->have_posts()) : $my_query->the_post(); ?> <div class="post row" id="post-<?php the_ID(); ?>"> <div class="thumb-box three column"> <?php $src = wp_get_attachment_image_src(get_post_thumbnail_id()); if (has_post_thumbnail()) { the_post_thumbnail(); } else { if (get_post_meta($post->ID, "thumbnail", true)): ?> <a href="<?php the_permalink() ?>" rel="bookmark"><img src="<?php echo get_post_meta($post->ID, "thumbnail", true); ?>" alt="<?php the_title(); ?>" /></a> <?php else: ?> <a href="<?php the_permalink() ?>" rel="bookmark"><img src="<?php bloginfo('stylesheet_directory'); ?>/images/insp-tv-small.png" alt="<?php the_title(); ?>" /></a> <?php endif; } ?> </div> <div class="post-content nine columns"> <h4 class="posttitle archiveposttitle"> <a href="<?php the_permalink() ?>" rel="bookmark" title="<?php _e('Permanent Link to', 'buddypress') ?> <?php the_title_attribute(); ?>"><?php the_title(); ?></a> </h4> <div class="entry"> <?php the_excerpt(); ?> </div> </div> </div> <?php endwhile; } // END if have_posts loop wp_reset_query(); } // END foreach $tax_terms } // END if $tax_terms ?>