我正在尝试将两个菜单添加到wordpress网站上的相同位置。显示哪个菜单将基于正在查看的页面,并且可以使用CSS轻松处理。
我为TwentySeventeen创建了一个子主题,并添加了以下文件。但是仍选中“顶部菜单1”或“顶部菜单2”在我的网站上没有显示菜单。更令人沮丧的是,选中“顶部菜单”(默认情况下包含主题)会显示一个菜单。
functions.php
<?php
function register_my_menus() {
register_nav_menus(
array(
'top-menu-1' => __( 'Top Menu 1', 'twentyseventeen' ),
'top-menu-2' => __( 'Top Menu 2', 'twentyseventeen' )
)
);
}
add_action( 'init', 'register_my_menus' );
?>
/template-parts/navigation/navigation-top.php
<?php
/**
* Displays top navigation
*
* @package WordPress
* @subpackage Twenty_Seventeen
* @since 1.0
* @version 1.2
*/
?>
<nav id="site-navigation-child" class="main-navigation" role="navigation" aria-label="<?php esc_attr_e( 'Top Menu', 'twentyseventeen' ); ?>">
<button class="menu-toggle" aria-controls="top-menu" aria-expanded="false">
<?php
echo twentyseventeen_get_svg( array( 'icon' => 'bars' ) );
echo twentyseventeen_get_svg( array( 'icon' => 'close' ) );
_e( 'Menu', 'twentyseventeen' );
?>
</button>
<?php
wp_nav_menu(
array(
'theme_location' => 'top-menu-2'
)
);
?>
<?php if ( ( twentyseventeen_is_frontpage() || ( is_home() && is_front_page() ) ) && has_custom_header() ) : ?>
<a href="#content" class="menu-scroll-down"><?php echo twentyseventeen_get_svg( array( 'icon' => 'arrow-right' ) ); ?><span class="screen-reader-text"><?php _e( 'Scroll down to content', 'twentyseventeen' ); ?></span></a>
<?php endif; ?>
</nav><!-- #site-navigation -->
Navigation-top.php是否应该覆盖父文件?如果我尝试从此文件中删除wp_nav_menu行,则不会显示任何菜单。这似乎表明它确实覆盖了父文件。那为什么不将其指向没有作用的新菜单呢?