it-swarm.com.ru

get_query_var () не работает в pre_get_posts

Я использую ловушку pre_get_posts, чтобы упорядочить основной запрос на всех моих пользовательских страницах типа/таксономии, используя пользовательское мета-значение. Как часть логики, я пытаюсь определить, какая таксономия в настоящее время отображается, используя get_query_var('taxonomy'), однако независимо от того, что я пытаюсь, она возвращает пустую строку:

function sort_query($query)
    ...
    if (is_tax()){
        ...
        echo get_query_var('taxonomy'); // Empty
        echo get_query_var($query->query_vars['taxonomy']); // Empty
        ...
    }
}
add_action('pre_get_posts', 'sort_query');

Любая помощь будет принята с благодарностью; Спасибо!

5
dSquared

Ты пробовал это?

function sort_query($query)
    if ($query->is_tax() && $query->is_main_query()){
        echo $query->query_vars['taxonomy']; 
        $query->set( 'orderby', 'post_title' );
        $query->set( 'order', 'ASC' );
        //do other stuff
    }
}
add_action('pre_get_posts', 'sort_query');

Удачного кодирования,

Kuchenundkakao

2
kuchenundkakao