一个站点,两个不同的部分:两个不同的顶级导航菜单?

时间:2012-04-22 作者:Austen Osborne

我有一个分为两部分的网站。我希望相同的模板适用于整个网站(从外观和感觉的角度),但网站的每个“一半”都有自己的顶部导航菜单。没有使用侧菜单。

主页将是一个自定义页面,它将用户引导到两侧中的一个或另一个。

我如何才能做到这一点?

非常感谢

奥斯汀

3 个回复
SO网友:offroff

最简单的解决方案是设置cookie。然后在打印菜单之前检查用户拥有的cookie。

另一种解决方案是添加一个查询变量,以便这两部分具有不同的URL,例如mysite。com/?half=A和mysite。com/?half=B。然后在打印菜单之前检查查询变量。此解决方案将使两个不同的半部分使用permalinks成为可能。(如果需要,您可以使URL变得漂亮)

SO网友:kaiser

使用自定义菜单wp_nav_menu(). 然后检查您是参加第一部分还是第二部分:

if ( ! is_home() || is_front_page() )
{
    $args = array(); // Define your menu here
    $query_string = explode( \'/\', $_SERVER[\'REQUEST_URI\'] );

    // You need to var_dump( $query_string ); 
    // to see which index/key is matching your requested query string part
    if ( \'PART_ONE\' === $query_string[0] )
    {
        wp_nav_menu( array_merge( $args, array( \'menu\' => \'MENU PART ONE\' ) ) );
    }
    else
    {
        wp_nav_menu( array_merge( $args, array( \'menu\' => \'MENU PART TWO\' ) ) );
    }
}

SO网友:Travis Pflanz

我认为最简单的解决方案是在Wordpress后端创建两个导航菜单,然后根据访问者所在的页面加载不同的标题。

从复制标题开始。php 2次,给出三个头文件。示例:标题。php,headerA。php,headerB。php

现在,打开原始标题。php并将所有代码替换为以下内容:

<?php
if (is_page(\'contact\')){
    <?php include(TEMPLATEPATH.\'/headerA.php\'); ?>
}
elseif (is_page(\'gallery\')){
    <?php include(TEMPLATEPATH.\'/headerB.php\'); ?>
}
else {
    <?php include(TEMPLATEPATH.\'/headerA.php\'); ?>
}
?>
这将告诉Wordress根据访问者所在的页面类型加载哪个标题。

此外,请确保使用以下命令在每个头文件中加载正确的菜单:

<?php wp_nav_menu( array(\'menu\' => \'Menu A )); ?>

结束