This is my own solution, improvements welcome :) Check for term ID. $term_id = (has_term('activity_1','activity-tax') ? 1 : (has_term('activity_2','activity-tax') ? 2 : (has_term('activity_3','activity-tax') ? 3 : ''))); Use term ID in my get_posts arguments. $args = array( 'post_type' => 'activity-post', 'order' => 'ASC', 'tax_query' => array( array( 'taxonomy' => 'activity-tax', 'field' => 'term_id', 'terms' => $term_id) ) ); Run over each post and create multiple array of meta data. $posts = get_posts($args); $custom_post = array(); foreach ($posts as $post) { $custom_post[] = get_post_custom($post->ID); } Access the array by key value. foreach ( $custom_post as $key => $value ) { echo $value['date'][0].'<br />'; echo $value['duration'][0].'<br />'; echo $value['paypal'][0]; }