Intereting Posts
Ошибка MySQL в структуре C # array ('category'): объект класса stdClass не может быть преобразован в строку Запись сериализованных значений многомерного массива в файл с помощью ключевого пути Чтение очень больших файлов в PHP Безопасность – сеансы (использование по умолчанию – Cookie) по сравнению с локальным хранилищем Как скрыть форму при отправке на ту же страницу? отображение точных результатов Как очистить ввод с помощью PDO? Последствия вставки положительного поиска в произвольное регулярное выражение для имитации смещения байтов Сортировка многомерного массива PHP на основе ключа? Curl – Запрос с wp_remote_get () отвечает 500, curl_exec отвечает 200 Отображение цвета другой границы, если поле действительно Unity 3D устанавливает / удаляет http-методы Почему в этой условной постановке есть восклицательный знак перед переменной? PHP MVC – Как контроллер и просмотр могут обращаться к одному экземпляру модели?

Фильтр категорий WordPress pre_get_posts удаляет пользовательские пункты меню

Таким образом, у меня есть этот сайт, где вы можете видеть, что есть два меню: один рядом с логотипом другой сверху справа;

http://www.ducklingfarm.com

Они создаются с использованием этого кода в functions.php;

function register_my_menus() { register_nav_menus( array( 'header-menu' => __( 'Header Menu' ), 'extra-menu' => __( 'Extra Menu' ) ) ); } add_action( 'init', 'register_my_menus' ); 

и это мой код для использования меню;

 <nav> <?php wp_nav_menu(array( 'theme_location' => 'header-menu' ) ) ?> </nav> <nav id="ecommerce"> <?php wp_nav_menu( array( 'theme_location' => 'extra-menu' ) ); ?> </nav> 

И меню работают нормально, за исключением случаев, когда вы переходите к категориям на боковой панели, например «Статьи» или «События» на странице «Блог»;

http://www.ducklingfarm.com/blog/

Страница блога – это настраиваемый тип сообщения, и чтобы сделать работу категории, я добавил некоторый код в functions.php, и с тех пор меню не работают должным образом. Этот код есть;

 add_filter('pre_get_posts', 'query_post_type'); function query_post_type($query) { if(is_category() || is_tag()) { $post_type = get_query_var('post_type'); if($post_type) $post_type = $post_type; else $post_type = array('post','Blog'); $query->set('post_type',$post_type); return $query; } } 

Поэтому я предполагаю, что с кодом что-то не так. Пожалуйста, помогите мне! Я бы очень признателен.

Лучший, Jaeeun

Я решил это, изменив последний код на это;

 add_filter('pre_get_posts', 'query_post_type'); function query_post_type($query) { if(is_category() && $query->is_main_query()) { $post_type = get_query_var('post_type'); if($post_type) $post_type = $post_type; else $post_type = array('post','Blog'); $query->set('post_type',$post_type); return $query; } } 

Вы можете попробовать это (Нет необходимости в нескольких if и $post_type = $post_type; )

 add_filter('pre_get_posts', 'query_post_type'); function query_post_type($query) { if(is_category() && $query->is_main_query()) { $query->set( 'post_type', array( 'post', 'Blog' ) ); } return $query; }