所以这是基本的模板页面代码:
<?php
/*
* Template name: About Content Template
*/
?>
<?php get_header(); the_post(); ?>
<div id="container">
<div id="main-content" class="dropShadow roundEdge">
<?php wp_nav_menu( array('menu' => 'About Submenu', 'menu_id' => 'submenu', 'container' => 'false' )); ?>
<?php the_content(); ?>
</div>
<?php get_sidebar();?>
</div>
<?php get_footer();?>
为简单起见,我们假设唯一改变的是菜单名称,具体取决于页面组。页面组例如是About
和Products
。首先想到的是向属于某个组的每个页面添加自定义字段,并设置属性"category=About"
或"category=Products"
。在functions.php中,我将有一个映射到菜单名称的类别名称数组,例如"About = About Menu"
,所以在加载菜单之前,我会获得自定义属性,从数组中读取菜单名称值并将其设置为wp_nav_menu
函数的参数。有更优雅的方式吗?
答案 0 :(得分:0)
您可以使用is_category功能确定要应用的子菜单,而不是自定义字段。如果您的子菜单名称与类别同步,则可以自动方式工作。
答案 1 :(得分:0)
我发现的解决方案相对简单。子菜单中的第一页(例如,按下“关于”时的历史记录)可以被视为类别主页面,因此我获取了子菜单中链接的所有其他页面,并将第一页(历史记录)作为其父页面。然后我通过仪表板创建了一个子菜单,并将其命名为History子菜单。使这项工作的代码很简单:
<?php $submenuName = get_the_title($post->post_parent);
$submenuName = $submenuName . " Submenu";
wp_nav_menu( array('menu' => $submenuName, 'menu_id' => 'submenu', 'container' => 'false' ));
get_the_title获取父页面名称,如果没有父页面,则获取页面名称。虽然与使用自定义字段没什么不同,但我认为这是更优雅的罪