我使用在线找到的以下函数将每个页面的各个导航项目呈现到页面:
function print_menu_shortcode($atts, $content = null) {
extract(
shortcode_atts(
array(
\'name\' => null,
\'class\' => null
),
$atts
)
);
return wp_nav_menu(
array(
\'menu\' => $name,
\'menu_class\' => $class,
\'echo\' => false
)
);
}
我想在一个下拉菜单中显示这些导航链接,其中有一个标记为菜单的按钮,而不是将链接渲染为
ul
, 但我不知道如何访问
wp_nav_menu
.
任何帮助都是最好的,谢谢!
最合适的回答,由SO网友:Qaisar Feroz 整理而成
您可以使用wp_get_nav_menu_items() 它检索导航菜单的所有菜单项。您的短代码回调应该是这样的。
function print_menu_shortcode($atts, $content = null) {
extract( shortcode_atts(
array(
\'name\' => null,
\'class\' => null
),
$atts
));
// Assuming $name contains slug or name of menue
$menu_items = wp_get_nav_menu_items($name);
// Sample Output. Adjsut as per your exact requirements.
// Sample Output variable.
$menu_dropdown = \'\';
if ($menu_items){
$menu_dropdown .= \'<select onChange="document.location.href=this.options[this.selectedIndex].value;">\';
foreach( $menu_items as $menu_item ) {
$link = $menu_item->url;
$title = $menu_item->title;
$menu_dropdown .= \'<option value="\' . $link .\'">\'. $title . \'</option>\' ;
}
$menu_dropdown .= \'</select>\';
} else {
$menu_dropdown = \'<!-- no menu defined in location "\'.$theme_location.\'" -->\';
}
return $menu_dropdown ;
}
More Examples 使用此功能时。