我将菜单设置为与页面上的自定义字段相对应。即在自定义字段=>菜单名下有三页的菜单1、菜单2和菜单3。在函数下。php我有:
/* Add Menu Locations */
add_action( \'init\', \'register_my_menus\' );
function register_my_menus() {
register_nav_menus(
array(
\'one-menu\' => __(\'menu1\'),
\'two-menu\' => __(\'menu2\'),
\'three-menu\' => __(\'menu3\'),
\'footerBlocka\' => __(\'Footer Block 1\'),
\'footerBlockb\' => __(\'Footer Block 2\'),
\'footerBlockc\' => __(\'Footer Block 3\'),
\'footerBlockd\' => __(\'Footer Block 5\')
)
);
}
然后在我的页面模板中,我有:
<?php
/* Division */
wp_nav_menu(array(
\'menu\' => get_post_meta( $post->ID, \'MenuName\', true),
\'depth\' => 2,
\'container\' => false,
\'menu_class\' => \'nav navbar-nav\'
));
?>
只要a)菜单存在,b)菜单实际上包含菜单项,这就可以正常工作。如果菜单存在但没有菜单项,它会奇怪地显示站点上所有菜单中所有菜单项的列表。如果菜单不存在,则只显示功能中列出的下一个菜单。php。
因此,我认为在我的页面模板中,我需要检查菜单,如果它存在,则打印菜单。我看到了几个其他的例子,但我能找到的只是主题区域是否存在或菜单是否存在。因为我正在使用\'menu\' => get_post_meta( $post->ID, \'MenuName\', true),
要动态调用菜单,我不知道如何在打印菜单之前检查此动态菜单。
那么如何检查从\'menu\' => get_post_meta( $post->ID, \'MenuName\', true),
如果它存在并且有菜单项,则打印它,如果没有,则不打印?
编辑:我尝试了以下操作:
<?php
/* Division */
wp_nav_menu(array(
\'menu\' => get_post_meta( $post->ID, \'MenuName\', true),
\'depth\' => 2,
\'fallback_cb\' => false,
\'container\' => false,
\'menu_class\' => \'nav navbar-nav\'
));
?>
新添加的内容仍将呈现函数中的下一行菜单。php函数。因此,如果menu3不存在,它将打印footerBlocka菜单。我想我的目标是检查MenuName自定义字段的页面ID,如果它存在,则检查菜单是否存在以及是否有链接,如果为true,则打印菜单,否则什么都不做。类似于:
$menu = get_post_meta($post->ID, \'MenuName\');
if($menu){
if([wp_nav_menu == $menu AND has links]){
wp_nav_menu(array(...));
}
}
这是我认为需要的伪代码,但我对WordPress挂钩了解不够,不知道它需要什么。