Навигационные меню не отображаются из-за настраиваемого фильтра типов записей


Я использую этот фильтр для отображения содержимого всех пользовательских типов записей на странице архива тегов

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');

Но каким-то образом это останавливает функцию wp_nav_menu, и меню навигации не отображаются на страницах архива тегов. Я не могу понять, в чем заключается конфликт между этими двумя.

Есть идеи?

Author: Nojan, 2013-05-14

1 answers

Это:

if (is_tag()){

Будет верно для любого запроса на странице архива тегов, включая запрос, который WordPress делает для загрузки пунктов меню.

Вы хотите проверить, является ли текущий запрос одновременно основным запросом и запросом тегов:

if ($query->is_main_query() && $query->is_tag()){
 4
Author: Milo, 2013-05-14 16:30:26