我的目标是根据正在查看的帖子的类别在标题中有一个自定义菜单。
我正在建立一个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); ?>