我正在尝试为Wordpress网站上的单独页面创建多个菜单。我希望主题加载主菜单,除非单个页面通过自定义字段指定不同的主页。
尝试将此代码添加到Header.php,但主题自定义设置存在问题,因为php没有“wp_nav_menu”。
<?php wp_nav_menu( array( 'container' => 'none', 'container_class' => 'menu-header', 'theme_location' => 'primary', 'menu' => get_post_meta( $post->ID, 'MenuName', true) ) ); ?>
当我将其直接添加到当前代码时,它会使主菜单在主题中已经存在的自定义菜单之上加倍。这是主题header.php现有代码:
<?php do_action( 'presscore_body_top' ); ?>
<div id="page"<?php if ( 'boxed' == of_get_option('general-layout', 'wide') ) echo ' class="boxed"'; ?>>
<?php if ( of_get_option('top_bar-show', 1) ) : ?>
<?php get_template_part( 'templates/header/top-bar', of_get_option('top_bar-content_alignment', 'side') ); ?>
<?php endif; // show top bar ?>
<?php if ( apply_filters( 'presscore_show_header', true ) ) : ?>
<?php get_template_part( 'templates/header/header', of_get_option( 'header-layout', 'left' ) ); ?>
<?php endif; // show header ?>
<?php do_action( 'presscore_before_main_container' ) ; ?>
<div id="main" <?php presscore_main_container_classes(); ?>><!-- class="sidebar-none", class="sidebar-left", class="sidebar-right" -->
<?php if ( presscore_is_content_visible() ): ?>
<div class="main-gradient"></div>
<div class="wf-wrap">
<div class="wf-container-main">
<?php do_action( 'presscore_before_content' ); ?>
<?php endif; ?>
在此代码中,我可以为单个页面创建此选项以获取单独的菜单吗?
答案 0 :(得分:0)
不要使用menu
数组键。相反,请使用菜单的theme_location
键。 (您可以完全排除menu
。)类似于:
wp_nav_menu( array(
'container' => false,
'theme_location' => get_post_meta( $post->ID, 'MenuName', true) ? get_post_meta( $post->ID, 'MenuName', true) : 'primary'
) );
如果没有自定义菜单,它将回退到&#39; primary&#39;。附注:如果您未指定容器,则container_class
无效,因此请使用容器或移除container_class
。