My navigation menu started disappearing on category pages. First I suspected there was something with the header or menu location, I have double, triple checked everything and I was pulling my hair out trying to find a solution. Turns out, my attempt to order posts by a custom field interfered with the menu.
if( ! $query->is_main_query()) return;
The key is the above line, and here is the rest of the code for example
add_filter( 'pre_get_posts', 'eo_custom_get_posts' ); function eo_custom_get_posts( $query ) { if( is_category() || is_archive() ) { if( ! $query->is_main_query()) return; $query->query_vars['orderby'] = 'meta_value_num'; $query->query_vars['order'] = 'DESC'; $query->query_vars['meta_key'] = 'lastupd'; } return $query; }