Intereting Posts
Как удалить большой палец с виджета Разный баннер на главной странице Импорт изображений с изображениями в сообщения, дублирование изображения Настройщик WordPress допускает разрыв строки Должна ли тема премиум / для продажи проходить процесс утверждения WordPress? Названия блога из блога WP на простом html-сайте? как сделать два пользовательских типа post post-base slug одинаковыми, тогда имя таксономии или мета-значение в URL-адресе Ошибка call_user_func_array () на лицевой стороне Как я могу разрешить пользовательскую таксономию для определенных ролей? Показать изображения категорий на странице продукта и странице продукта $ content не имеет значения в коротком коде, хотя он сам закрывается Пользовательский запрос WordPress по заголовку архива Каков наилучший подход для показа сообщений в порядке A-> Z? таксономические метки .. он не работает Настройка настраиваемого виджета с помощью js

Групповой пользовательский тип сообщения на странице по его таксономическому тегу

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

У меня есть пользовательский тип сообщения … этот тип пользовательских сообщений имеет таксомонию (например, категория)
и я хочу вернуть структуру, подобную этой, на странице, отображающей все сообщения
это post type ..

——————————————— ЖЕЛАЕМАЯ СТРУКТУРА

название таксономической категории (пример: Нью-Йорк)
– отправить сообщение (ассоциируется с новой категорией йорка)
– пост два (ассоциируется с новой категорией йорка)
– пост три (ассоциируется с новой категорией йорка)

название таксономической категории (пример: Вашингтон, округ Колумбия)
– отправить сообщение (связанное с категорией Вашингтон-округ Колумбия)
– пост два (связанный с категорией Вашингтон-округ Колумбия)
– пост три (ассоциируется с категорией Вашингтон-округ Колумбия)
– пост четвертый (ассоциируется с категорией Вашингтон-округ Колумбия)
– пост Пять (ассоциируется с категорией Вашингтон, округ Колумбия)

название категории таксомоний (пример: SomeCity)
– отправить сообщение (связанное с категорией SomeCity)
– пост два (ассоциируется с категорией SomeCity)

Это код, который у меня есть сейчас:

<div class="pageContent portfolioPage"> <!--=STR== PAGE TITLE ===--> <?php if (have_posts()) : ?> <?php while (have_posts()) : the_post(); ?> <h1 id="post-<?php the_ID(); ?>"><?php the_title(); ?></h1> <?php the_content(); ?> <?php endwhile; endif; ?> <!--=END== PAGE TITLE ===--> <!--=STR== OUR CLIENTS ===--> <?php /* query_posts(array( 'post_type' => 'vacationrental', 'showposts' => 100 ) ); */ $loop = new WP_Query( array( 'post_type' => 'vacationrental', 'post_per_page' => 100, 'orderby' => 'date', 'order' => 'ASC' )); ?> <?php while ($loop->have_posts()) : $loop->the_post(); ?> <div class="vacationRentalBox"> <div class="vacationRentalBox-inner"> <?php $image_id = get_post_thumbnail_id(); $image_url = wp_get_attachment_image_src($image_id,'large'); $image_url = $image_url[0]; // $googleMapsUrl = get_post_meta( $post->ID, 'vacationrental_map', true ); // GOOGLE MAPS URL ?> <div class="vacationRentalBar"> <div class="vacationRentalName"><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a></div> <div class="thumbsingle"> <a title="<?php the_title(); ?>" href="<?php echo $image_url; ?>" class="lightbox"><?php the_post_thumbnail('testimonialPage'); ?></a> </div> <div class="vacationRentalDescription"><?php dynamic_excerpt(315); ?></div> <div class="vacationRentalExtraInfo"> <div class="vacationRentalReadMore"><a href="<?php the_permalink(); ?>" rel="nofollow"><?php _e('Read More &rarr;' ,'sagive'); ?></a></div> </div> <br style="clear: both;" /> </div> </div> </div> <?php endwhile;?> <!--=END== OUR CLIENTS ===--> <br style="clear: both;" /> </div> 

,
Мне удалось получить список категорий таксономий, используя это:

 $terms = get_terms("locations"); $count = count($terms); if ( $count > 0 ){ echo "<ul>"; foreach ( $terms as $term ) { echo "<li>" . $term->name . "</li>"; } echo "</ul>"; } 

Но я не знаю, как интегрировать это в цикл / структуру. Будет ли действительно предлагать вашу помощь, поскольку я застрял …

Solutions Collecting From Web of "Групповой пользовательский тип сообщения на странице по его таксономическому тегу"

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

Существует более сложный подход с использованием пользовательского SQL и фильтра, но следующий пример – это то, что я хотел бы использовать:

 $terms = get_terms("locations"); $count = count($terms); if ( $count > 0 ){ foreach ( $terms as $term ) { echo '<h2>' . $term->name . '</h2>'; echo '<ul>'; $loop = new WP_Query( array( 'post_type' => 'vacationrental', 'post_per_page' => 100, 'orderby' => 'date', 'order' => 'ASC', 'tax_query' => array( array( 'taxonomy' => 'locations', 'field' => 'id', 'terms' => $term->term_id ) ) )); // the loop while ($loop->have_posts()) : $loop->the_post(); // do loop content echo '<li>' . get_the_title() . '</li>'; endwhile; // reset $post so that the rest of the template is in the original context wp_reset_postdata(); echo '</ul>'; } } 

хорошо, это устарело, и у вас есть решение, но я пытался сделать то же самое. вот как я закончил делать это w / SQL voodoo, исправленный вместе с нескольких мест, но в основном:

Используя wp_query, можно ли заказать таксономию? а также

как группировать персонализированные сообщения типа по пользовательским правилам таксономии

сначала запрос voodoo:

 function wpa_38075( $clauses, $wp_query ) { global $wpdb; if( !is_post_type_archive( 'vacationrental' )) return $clauses; //join term_relationships to posts, and term_relationships to term_taxonomy and term_taxonomy to terms $clauses['join'] .= "LEFT OUTER JOIN {$wpdb->term_relationships} ON {$wpdb->posts}.ID={$wpdb->term_relationships}.object_id LEFT OUTER JOIN {$wpdb->term_taxonomy} USING (term_taxonomy_id) LEFT OUTER JOIN {$wpdb->terms} USING (term_id)" ; //look for posts with and without a subject term $clauses['where'] .= " AND (taxonomy = 'locations' OR taxonomy IS NULL)"; $clauses['groupby'] = "object_id"; //remove limits $clauses['limits'] = ""; //group posts by term name $clauses['orderby'] = "GROUP_CONCAT({$wpdb->terms}.name ORDER BY name ASC) "; return $clauses; } add_filter( 'posts_clauses', 'wpa_38075', 10, 2 ); 

а затем в вашем шаблоне:

 <?php $prev = ''; //not set yet if (have_posts()) : echo "<ul>"; while ( have_posts() ) : the_post(); $subhead = array_shift(wp_get_post_terms(get_the_ID(), 'subject', array("fields" => "names"))); $subhead = $subhead ? $subhead : __('Uncategorized','yourtextdomain'); if($subhead != $prev) { ?> <h3 class="subhead"><?php echo $subhead;?></h3> <?php } ?> <li><a href="<?php echo get_permalink();?>" title="<?php echo __('Permalink to', 'peterwade') . ' ' . get_the_title();?>"><?php the_title();?></a></li> <?php $prev = $subhead; //cache the previous tax term endwhile; echo "</ul>"; endif; ?>