对于我的Wordpress网站,我通常使用wp_nav_menu()函数来显示自定义菜单。但这一次,我希望在php中的一个数组中包含所有菜单元素,如下所示:
array(
"Menu 1" => array("title" => "Menu 1", "url" => "http://...", "subitems"=> array(...),
"Menu 2" => ...
)
这只是一个例子。我试着用SQL获取菜单,但没有发现任何效果很好的东西。我的菜单包含页面、类别和外部链接。为了完成这一点,我的网站使用了WPML,所以还有其他菜单。。。
你能帮我吗?
我建议您使用wp_get_nav_menu_items()-函数来检索菜单,并从中选择要保留的元素。
例如:
// the name of your menu
$menu_name = 'custom_menu_slug';
if ( ( $locations = get_nav_menu_locations() ) && isset( $locations[ $menu_name ] ) ) {
$menu = wp_get_nav_menu_object( $locations[ $menu_name ] );
$menu_items = wp_get_nav_menu_items($menu->term_id);
foreach ( (array) $menu_items as $key => $menu_item ) {
// build the array
}
}
更多信息:https://codex.wordpress.org/Function_Reference/wp_get_nav_menu_items