if($category_name !==''){ $category = array( 'taxonomy' => 'category', 'field' => 'slug', 'terms' => $category_name, ); } else { $category = ''; } $args = array ( 'post_type' => 'post', // it's default, you can skip it 'posts_per_page' => '1', 'order_by' => 'date', // it's also default 'order' => 'DESC', // it's also default 'tax_query' => array( 'relation' => 'AND', array( 'taxonomy' => 'post_tag', 'field' => 'slug', 'terms' => $tag_name, ), $category, ), ); // query is made $query = new WP_Query( $args );