However, as you pointed out there are 2 queries on the page. On the green background where all the posts for the category are listed, the problem is that the featured post is showing there too. Is there a way to automatically exclude the featured post from the green background area?
It’s not ideal to mess with that as this page is the default archive page WordPress generates that is meant to list ALL posts that are under category “popular”, regardless of what other category or tags they have.
But if you really must do it, you can try going with pre_get_post
filter.
Example:
function exclude_with_post_tag_on_cat_archive( $query ) {
$category = get_queried_object();
$cat_id = $category->term_id;
$cat_slug = $category->slug;
$featured_tag = 'featured-' . $cat_slug;
$tag_id = get_term_by('slug', $featured_tag ,'post_tag');
if ( $query->is_category($cat_id) && $query->is_main_query() ) {
$query->set( 'tag__not_in', array( $tag_id ) );
}
}
add_action( 'pre_get_posts', 'exclude_with_post_tag_on_cat_archive' );