web-dev-qa-db-ja.com

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

ハッピーコーディング、

クヘンヌーカカオ

2
kuchenundkakao