I have a recent post shortcode to display a custom post. Everything works fine so far. However, I would like to add a category attribute so I can specify which category to display.
My working code is as follows:
function my_recent_posts_shortcode2( $atts ) {
extract( shortcode_atts( array( 'limit' => 7, 'type' => 'g1_event'), $atts ) );
global $paged;
$q = new WP_Query( array (
'posts_per_page' => $limit,
'post_type' => $type,
"orderby" => 'meta_value',
"meta_key" => 'evt_start_date',
"order" => 'ASC',
'paged' => $paged
) );
$list = '<ul class="recent-events">';
while ( $q->have_posts() ) {
$q->the_post();
//for this post, get custom field "event_date" which should be in yyyy-mm-dd format and display as to month, day
//2011-02-22 will display as February 22
$evt_start_date = get_post_meta($post->ID, 'evt_start_date', true);
$evt_start_date = get_post_meta($post->ID, 'evt_start_date', true);
if ($evt_start_date) {
echo 'The event date is '. date('F j', strtotime($evt_start_date));
}
$list .= '<li>' . '<a href="' . get_permalink() . '">' . get_the_title() . '</a>' . '<br>'. get_post_meta( get_the_ID(), 'evt_start_date', true ) . ' @ ' . get_post_meta( get_the_ID(), 'evt_location', true ) . '</li>';
}
wp_reset_query();
return $list . '</ul>';
}
add_shortcode( 'recent-events', 'my_recent_posts_shortcode2' );
Right now I place the shortcode using: [recent-events][/recent-events]
I would like to be able to specify the category ID: [recent-events cat="62"][/recent-events]
Hope this is clear, thank you.