Wordpress Header.php:为单独的页面创建多个菜单

时间:2014-12-24 21:08:54

标签: php wordpress menu header-files

我正在尝试为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; ?>

在此代码中,我可以为单个页面创建此选项以获取单独的菜单吗?

1 个答案:

答案 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