获取任何HTML标记的Wordpress菜单

时间:2015-12-16 14:15:29

标签: php wordpress

对于我的Wordpress网站,我通常使用wp_nav_menu()函数来显示自定义菜单。但这一次,我希望将所有菜单元素都放在php中的数组中:

array(
    "Menu 1" => array("title" => "Menu 1", "url" => "http://...", "subitems"=> array(...),
    "Menu 2" => ...
)

这只是一个例子。我尝试用SQL获取菜单,但我没有找到任何效果很好的东西。我的菜单包含页面,类别和外部链接。为了完成这一点,我的网站使用WPML,所以还有其他菜单...

你能帮助我吗?

1 个答案:

答案 0 :(得分:0)

我建议您使用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