I use this filter to show content from all custom post types in tags archive page

function tagFilter($query) {
    $post_type = $_GET['type'];
    if (is_tag()){
        if (!$post_type) {
            $post_type = 'any';
        $query->set('post_type', $post_type);
    return $query;

but somehow it stops the wp_nav_menu function and navigation menus do not appear in tags archive pages. I can't figure out where is the conflict between the two.

Any ideas?

1 Answer 1



if (is_tag()){

will be true for any query on a tag archive page, including the query WordPress makes to load menu items.

You want to check if the current query is both the main query and tag query:

if ($query->is_main_query() && $query->is_tag()){

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.