Revision: 80123
Initial Title
Initial Description
Initial Code
Initial Tags
Initial Language
Initial URL
at January 29, 2020 20:11 by reflectiondigital
Initial Title
List Posts By Terms
Initial Description
To display events from The Events Calendar Pro organized by taxonomy
Initial Code
/** * Get posts and group by taxonomy terms. * @param string $posts Post type to get. * @param string $terms Taxonomy to group by. * @param integer $count How many post to show per taxonomy term. * based on https://gist.github.com/jaredkc/6191133 */ function list_posts_by_term( $atts ) { $semester = get_option('the_muse_site_settings_current_semester'); $current_semester = get_term( $semester[0], "semester" ); //current semester as set in options extract(shortcode_atts(array( "posts" => "tribe_events", "terms" => "genre", "count" => 25 ), $atts)); $tax_terms = get_terms( array( 'taxonomy' => $terms, 'hide_empty' => true, ) ); $output = "<div class='auto-col-3'>"; foreach ( $tax_terms as $theterm ) { $output .= '<h3><a name="'.$theterm->slug.'"></a>' . $theterm->name . '</h3> <ul>'; $args = array( 'posts_per_page' => $count, 'post_type' => $posts, 'tribeHideRecurrence' => true, 'start_date' => 'today', 'tax_query' => array( array( 'taxonomy' => $terms, 'field' => 'slug', 'terms' => $theterm->slug, ), array( 'taxonomy' => "semester", 'field' => 'slug', 'terms' => $current_semester->slug, 'operator' => "IN", ), ) ); $tax_terms_posts = tribe_get_events($args); foreach ( $tax_terms_posts as $post ) { $output .= '<li><a href="' . get_permalink( $post->ID ) . '">' . $post->post_title . '</a></li>'; } $output .= '</ul>'; } wp_reset_postdata(); $output .= '</div>'; return $output; } add_shortcode( 'list_grouped_posts', 'list_posts_by_term' );
Initial Tags
wordpress
Initial Language
PHP
Initial URL