При фильтрации запроса на пользовательскую таксономию; главное меню исчезает

Я создал обычную таксономию, и это работает.

Но вот проблема; Я создал страницу архива, которая в url получает, например, следующее ?category=23 . Затем, в functions.php , я делаю это:

 function add_inspiration_category( $q ) { if (is_post_type_archive('inspiration') && !is_admin()) { $category_id = $_GET['category']; if (!empty($category_id)) { $q->set('tax_query', array( array( 'taxonomy' => 'inspiration-taxonomy', 'field' => 'id', 'terms' => $category_id ) )); } } return $q; } add_filter('parse_query', 'add_inspiration_category'); 

Итак, в основном я фильтрую результат архивных страниц на основе идентификатора в URL-адресе. Это работает, за исключением случаев, когда я фильтрую категорию, главное меню исчезает из заголовка. Если я удалю ?category=23 из url или закомментирую раздел выше, где я устанавливаю tax_query , он работает как ожидалось снова. Кто-нибудь знает, что это?

Solutions Collecting From Web of "При фильтрации запроса на пользовательскую таксономию; главное меню исчезает"

Вы применяете этот фильтр к каждому запросу на страницах, соответствующих условиям, или, if . Вам нужно ограничить это только основным запросом и убедиться, что условия действуют только на запрос $q переданный в функцию.

 if ($q->is_main_query() && $q->is_post_type_archive('inspiration') && !is_admin()) {