具有特定主题位置的wp_nav_menu不可见

时间:2016-03-23 22:41:55

标签: php wordpress

在我的Wordpress应用程序中,wp_nav_menu不可见。另一个菜单按预期工作。

这是不可见的:

<?php wp_nav_menu( array('theme_location' => 'mobile_menu', 'container_class'=>'my-mobile-wrapper')); ?>

这是可见的(两者都在header.php中)

<?php wp_nav_menu( array('theme_location' => 'header_menu', 'container_class'=>'header-menu')); ?>

我从某处读到了一条建议,但是将它添加到functions.php并没有用。

add_action( 'pre_get_posts', 'my_pre_get_posts' );
    function my_pre_get_posts($query) {
        if ($query->get('post_type') === 'nav_menu_item') {
            $query->set('tax_query','');
        }
    }

我注册如下:

if (!function_exists('my_register_menus')) {
    function my_register_menus() {

        register_nav_menus(
            array(
                'header_menu' => __('Header Menu', "my"),
                'mobile_menu' =>  __('Mobile Menu', "my")
            )
        );

    }
}

add_action( 'after_setup_theme', 'my_register_menus' );

谢谢你们。

1 个答案:

答案 0 :(得分:0)

好的,我找到了答案。

我使用一个函数来扩展菜单内容,我在那时做了结构性错误。我在这里写的是那些可能遇到类似问题的人:

add_filter( 'wp_nav_menu_items', 'my_extend_menu_content', 10, 2 );

function my_extend_menu_content($items, $args){
    switch .... for menus other than mobile.

    // After the switch block:
    return false; // which is wrong.
    return $items; // should be this way.
}