Trying to organize post type by connected post-type meta value
-
Hey there,
First of all, awesome plugin! I’ve used it a couple of times for some basic custom-post type connections and it’s worked out great! I’m currently developing an event listings website, and am using two connected post-types: Artists and Events. I currently have a Complete Listings section that’s displaying each artist alphabetically, and the events connected to that artists by event date (the meta value). See: https://puu.sh/bBDrN/9e645a5f0e.png.
My client recently asked if we can organize the Complete Listings, showing artists that have the most recent event dates first but still having their shows grouped together. For example, if you look at the screenshot above, they would like the Hey Rosetta! box to show before the Adam Baldwin box, because they have a show on the 17th, compared to the 27th.
Here’s my current code for the Complete Listings:
<div class="col-md-9"> <h2>Complete Listings</h2> <?php $my_query = new WP_Query( array( 'post_type' => 'base_artists', 'order' => 'ASC', 'orderby' => 'name', 'posts_per_page' => -1, ) ); p2p_type( 'events_to_artists' )->each_connected( $my_query, array(), 'events' ); while ( $my_query->have_posts() ) : $my_query->the_post(); $link = get_permalink($post->ID); $connected = new WP_Query( array( 'connected_type' => 'events_to_artists', 'connected_items' => $post, 'order' => 'ASC', 'orderby' => 'meta_value_num', 'meta_key' => '_base_event_date', 'meta_query' => array( array( 'key' => '_base_event_date', 'value' => time(), 'type' => 'NUMERIC', 'compare' => '>' )), ) ); if ($connected->have_posts() ): ?> <!-- Show Listing --> <div class="listing col-md-12" id="<?php the_title() ;?>"> <h3><?php the_title(); ?><?php $special_guest = get_post_meta( $post->ID, '_base_special_guest', true ); ?> <?php if(!empty($special_guest)): ?>w/ special guests <?php echo $special_guest ;?><?php endif; ?></h3> <div class="row"> <div class="band-small col-sm-2"> <div class="img-responsive"><?php the_post_thumbnail('band-small'); ?></div> </div> <div class="listing-table col-sm-10"> <table class="table table-striped table-condensed table-hover"> <tbody> <?php if ( $connected->have_posts() ) : while ( $connected->have_posts() ) : $connected->the_post(); ?> <?php $venue_name = get_post_meta( $post->ID, '_base_event_venue_name', true ); $venue_address = get_post_meta( $post->ID, '_base_event_venue_address', true ); $venue_city = get_post_meta( $post->ID, '_base_event_venue_city', true ); $venue_province = get_post_meta( $post->ID, '_base_event_venue_province', true ); $date = get_post_meta( $post->ID, '_base_event_date', true ); $doors = get_post_meta( $post->ID, '_base_event_time_door', true ); $start = get_post_meta( $post->ID, '_base_event_time_start', true ); $advance_price = get_post_meta( $post->ID, '_base_event_advance_price', true ); $purchase_link = get_post_meta( $post->ID, '_base_event_purchase_link', true ); $door_price = get_post_meta( $post->ID, '_base_event_door_price', true ); $event_type = get_post_meta( $post->ID, '_base_event_type', true ); $maps = get_post_meta( $post->ID, '_base_event_map', true ); ?> <tr> <td class="market"><?php echo $venue_city ;?>, <?php echo $venue_province ;?></td> <td class="date"><?php echo date('M. j', $date ) ;?></td> <td class="venue"><?php echo $venue_name ;?></td> <td class="more"><a href="<?php echo $link ;?>" class="more">More info...</a></td> <td class="buy"><a href="<?php echo $purchase_link ;?>" class="btn btn-danger">Buy Tickets</a></td> </tr> <?php endwhile; wp_reset_postdata(); endif; ?> </tbody> </table> </div> </div> </div> <!-- End Show Listing --> <?php endif; endwhile; ?> </div> <!-- End Complete Listings -->
We are stumped at what the best way to re-write this would be. Any help would be greatly appreciated.
Thanks,
Andy
- The topic ‘Trying to organize post type by connected post-type meta value’ is closed to new replies.