我在修改挂接到的主查询时遇到问题pre_get_posts
因为它导致菜单不显示。这是原始代码:
else if ( isset( $_GET[\'category\'] ) && !is_admin() ) {
$_GET = filter_input_array(INPUT_GET, FILTER_SANITIZE_STRING);
$tax_query = array(
array(
\'taxonomy\' => \'events-category\',
\'field\' => \'slug\',
\'terms\' => array( strtolower( $_GET[\'category\'] ) ),
),
);
$query->set( \'tax_query\', $tax_query );
}
有人建议修改条件并添加
$query->is_main_query()
要避免弄乱菜单的查询,请执行以下操作:
else if ( isset( $_GET[\'category\'] ) && !is_admin() && $query->is_main_query() ) {
我确实更改了它,并显示了菜单,但分类查询现在被完全忽略,并且显示了所有帖子。
为什么会$query->is_main_query()
是否修改分类查询?我完全困惑了。