Intereting Posts
Устранение неполадок с плагином установки Plugins.php HTTP и HTTPS для одного подключаемого модуля Пользовательская роль пользователя, не работающая с пользовательским типом сообщения Как добавить некоторые блоки в шаблон без изменения файла шаблона? Как получить group_id из действия group_join_group в buddypress добавить класс span внутри тега привязки ссылки wp_nav_menu Написание кода Mysql и Php в WordPress Сообщения PHP для программного удаления файла Проблема с кодом роли автора Создать подпапку, которая всегда отображает файл шаблона posts_where не работает с более чем одним настраиваемым полем в запросе Clone wordpress blog на localbox вручную Целевая страница целевой страницы с помощью класса CSS Как вы создаете персонализированные элементы типа публикации, автоматически удаляя элементы через 3 месяца после публикации? аутентифицировать пользователя без перенаправления Миграция запроса mysqli в wp_query

Меню исчезает с помощью специальной ссылки типа сообщения

Я работаю с Genesis Theme некоторое время, но у меня не было никаких проблем 🙂

Это моя первая большая проблема, и я не знаю, как ее решить. Я создаю новый веб-сайт с пользовательскими типами сообщений и WP All Import plugin. Все работает нормально, но я создал фильтр для фильтрации по типу пользовательских сообщений. Фильтр работает так, как должно быть, но после перезагрузки страницы мое главное меню исчезло.

Это страница, которую я имею в виду. (пока не живете, чтобы увидеть некоторые ошибки)

Без фильтра и с меню: с меню

С фильтром и без меню: Без меню

У кого-то есть идея, почему это происходит и как я могу решить эту проблему?

Заранее спасибо.

С уважением,

Юп

Это фильтр в моих functions.php

// action add_action('pre_get_posts', 'my_pre_get_posts'); function my_pre_get_posts( $query ) { // bail early if is in admin if( is_admin() ) { return; } // get meta query $meta_query = $query->get('meta_query'); if(!empty($_GET['contract'])) { $contract = explode(',', $_GET['contract']); $meta_query[] = array( 'key' => 'contract', 'value' => $_GET['contract'], 'compare' => 'IN', ); } $query->set('meta_query', $meta_query); return; } 

Фильтры pre_get_posts будут применяться ко всем запросам на странице – основной запрос, меню и дополнительные экземпляры WP_Query.

Чтобы настроить только основной запрос, используйте is_main_query() :

 function my_pre_get_posts( $query ) { // bail early if is in admin // or if query is not main query if( is_admin() || !$query->is_main_query() ) { return; } // get meta query $meta_query = $query->get('meta_query'); if(!empty($_GET['contract'])) { $contract = explode(',', $_GET['contract']); $meta_query[] = array( 'key' => 'contract', 'value' => $_GET['contract'], 'compare' => 'IN', ); } $query->set('meta_query', $meta_query); return; }