获取Wordpress菜单,去掉任何HTML标记


Get Wordpress menu whitout any HTML tags

对于我的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

相关文章: