Take the 2-minute tour ×
WordPress Development Stack Exchange is a question and answer site for WordPress developers and administrators. It's 100% free, no registration required.

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;
};
add_filter('pre_get_posts','tagFilter');

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?

share|improve this question
add comment

1 Answer 1

up vote 2 down vote accepted

This:

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()){
share|improve this answer
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

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