This is my own solution, improvements welcome :) Check for term ID and assign to variable. $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 variable in my get_posts parameters. $args = array( 'post_type' => 'activity-post', 'order' => 'ASC', 'tax_query' => array( array( 'taxonomy' => 'activity-tax', 'field' => 'term_id', 'terms' => $term_id) // Only the ID I want ) ); $posts = get_posts($args); Run over each post and create multiple array of meta data. $custom_post = array(); foreach ($posts as $post) { $custom_post[] = get_post_custom($post->ID); } Finally get the array's meta data I want. foreach ( $custom_post as $key => $value ) { echo $value['date'][0].'<br />'; echo $value['duration'][0].'<br />'; echo $value['paypal'][0]; }