PARSE_TAX_QUERY导致导航菜单消失

时间:2015-03-24 作者:fightstarr20

我正在使用以下代码段修改查询。。。

function no_child_terms($query) {
    if( !is_admin())    {
  $query->tax_query->queries[0][\'include_children\'] = 0;
  }
}
add_action(\'parse_tax_query\', \'no_child_terms\');
这可以正常工作,可以正确修改查询,但会导致我的导航菜单消失。我是否正确使用parse\\u tax\\u查询?

1 个回复
最合适的回答,由SO网友:Milo 整理而成

查询解析发生在页面上运行的每个查询上,而不仅仅是主查询。你的parse_tax_query 正在修改菜单中菜单项的查询。检查is_main_query() 要确保只更改主查询,请执行以下操作:

function no_child_terms($query) {
    if( !is_admin() && $query->is_main_query() ){
        $query->tax_query->queries[0][\'include_children\'] = 0;
    }
}
add_action(\'parse_tax_query\', \'no_child_terms\');

结束

相关推荐

注册_NAV_MENUS,然后以编程方式创建菜单

我有一个register_nav_menus 调用我的主题函数。php://register nav menu and footer nav. register_nav_menus( array( \'main-nav\' => \'Main Navigation\', \'footer-nav\' => \'Footer Navigation\' ) ); 这很好,但我想采取额外的步