自定义类别菜单的主题修改

时间:2014-06-06 作者:jtesta

我的目标是根据正在查看的帖子的类别在标题中有一个自定义菜单。

我正在建立一个wordpress网站,它将包含大约六个不同的类别。每个类别都将是我负责维护的手册。我认为wordpress是一种比印刷手册或下载PDF更好的内容交付方式。

基于在以下位置找到的线程:http://wordpress.org/support/topic/custom-menusheaders-for-different-categories (特别是第四篇帖子)我修改了标题。通过替换以下代码,在my theme文件夹中创建php文件:

<?php wp_nav_menu( array( \'theme_location\' => \'primary\', \'menu_class\' => \'nav-menu\' ) ); ?>
使用此代码:

<?php   $cat = get_the_category();
                    $catSlug = $cat[0]->slug;
                    $catMenu = $catSlug . "-nav-menu";
                    wp_nav_menu(array(
                                \'container\'=>\'nav\', 
                                \'container_class\'=>\'menu-header\',
                                \'theme_location\'=>\'primary\',
                                \'menu\'=>\'{$catMenu}\'
                                )
                            ); ?>
我已经创建了自定义菜单,其名称与类别slug后跟“-nav menu”匹配。例如,类别“员工手册”有一段员工手册和员工手册导航菜单的特定导航菜单。

我可以回显$catMenu,它显示的正是我所期望的。

然而,标题中的导航菜单是默认导航菜单,而不是特定于类别的导航菜单。

有人对我的wp\\u nav\\u菜单调用没有按我预期的方式执行有什么建议吗?如果有人能为我指明实现目标的正确方向,我将不胜感激。

非常感谢你。

根据第一条注释中的请求,以下是在view source中找到的输出:

<nav id="primary-navigation" class="site-navigation primary-navigation" role="navigation">
<button class="menu-toggle">Primary Menu</button>
<a class="screen-reader-text skip-link" href="#content">Skip to content</a>
   <ul id="menu-docs-navigation" class="menu">
          <li id="menu-item-4" class="menu-item menu-item-type-taxonomy menu-item-object-category current-menu-item menu-item-4"><a href="http://jaredtesta.net/main/category/flight-operations-manual/">Flight Operations Manual</a></li>
          <li id="menu-item-5" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-5"><a href="http://jaredtesta.net/main/category/standardization-manual/">Standardization Manual</a></li>
          <li id="menu-item-6" class="menu-item menu-item-type-taxonomy menu-item-object-category menu-item-6"><a href="http://jaredtesta.net/main/category/sopa/">Standard Operating Procedures Amplifier</a></li>
         </ul>          
</nav>
编辑:找到解决方案。在wp\\u nav\\u菜单调用中,变量周围不需要单引号或花括号。以下示例:

<?php   $cat = get_the_category();
                    $catSlug = $cat[0]->slug;
                    $catMenu = $catSlug . "-nav-menu";
                    $options = array(
                                \'container\'=>\'nav\', 
                                \'container_class\'=>\'menu-header\',
                                \'theme_location\'=>\'primary\',
                                \'menu\'=>$catMenu
                                );

                    wp_nav_menu($options); ?>

1 个回复
最合适的回答,由SO网友:jtesta 整理而成

如上所述,我找到了自己问题的答案。变量周围不需要单引号或括号。变量本身就是字符串这一事实就足够了。

正确的代码如下:

<?php   $cat = get_the_category();
                $catSlug = $cat[0]->slug;
                $catMenu = $catSlug . "-nav-menu";
                $options = array(
                            \'container\'=>\'nav\', 
                            \'container_class\'=>\'menu-header\',
                            \'theme_location\'=>\'primary\',
                            \'menu\'=>$catMenu
                            );

                wp_nav_menu($options); ?>
我还发现了一个位于此处的多主题插件:http://jonradio.com/plugins/jonradio-multiple-themes/

这将允许不同类别有不同的主题。仅仅为了保持菜单的不同而创建新的主题可能有点过头了,但如果您想更改标题、菜单和布局,那么这可能就是您想要的。

结束

相关推荐

Show post categories

我正在尝试显示一些面包屑的帖子类别。目前,我有:the_category(\' / \', \'multiple\'); 但出于某种原因,它两次声明了父类别(我只想parent > child):FASHION / DAILY FASHION CANDY / FASHION 它应该是:FASHION / DAILY FASHION CANDY 有人知道它为什么这样做,以及如何改变它吗?