我想我正在做一件与OP类似的事情:让我的客户机(wp admin user)创建菜单(在wp admin>Appearance>Menu中),这些菜单没有分配给特定的主题位置,因为这需要静态/一对一的关系。
相反,这些菜单是基于当前页面的顶级祖先的名称动态显示的(通过自定义小部件)。如果该名称与现有菜单的名称匹配,则显示菜单(由html之前/之后的标准小部件包装)。但是,如果没有匹配项,则不输出任何内容。
因此,在开始小部件输出之前,我需要检查菜单是否存在。
$args = array(
\'menu\' => $menu_name, // from top-ancestor of current page
\'echo\' => 0, // true or 0
\'theme_location\' => \'__fake\', // fake value, to prevent display of 1st real menu
\'fallback_cb\' => false // prevent display of 1st real menu
);
$menu = wp_nav_menu( $args );
if ($menu){
# output
echo $before_widget; // Before
echo $before_title . $title . $after_title; // Title
echo $menu;
echo $after_widget; // After
}