7
votes

Obtenir les valeurs de menu de WordPress

Tout, J'utilise le code suivant pour obtenir tous les menus de WordPress définis créés: xxx

Je connais l'identifiant du menu que je veux utiliser. Sur la base de l'ID de menu, j'aimerais obtenir les pages qui figurent dans ce menu et l'étiquette de navigation correspondante en fonction d'un identifiant de menu sélectionné. Comment puis-je continuer à faire ça?

J'ai effectivement découvert ceci: xxx

dans cet exemple, les options $ ["MENU_CHOICE '] est le menu sélectionné. Id, mais ce que je voudrais vraiment, c'est donner la valeur de permalien. Puis-je obtenir cela à partir de ceci?

Merci pour une aide à l'avance!


2 commentaires

Saviez-vous qu'il y a un site Stackexchange dédié à WordPress? wordpress.stackexchange.com


Vérifiez cette réponse Stackoverflow.com/a/37959604/1153703


5 Réponses :


3
votes

Pour accéder au titre et à l'URL de chaque élément d'un menu à l'aide de la fonction WP_GET_NAV_MENU_ITEMS () CODE> Fonction:

$menu_items = wp_get_nav_menu_items( $options['menu_choice'] );
foreach ( (array) $menu_items as $key => $menu_item ) {
    $title = $menu_item->title;
    $url = $menu_item->url;
}


0 commentaires

2
votes

Vous voulez afficher un menu spécifique? Pourquoi ne pas utiliser une fonction plus simple, wp_nav_menu code> et transmettre un argument de votre identifiant de menu souhaitable? Il suffit de remplacer votre menu_id avec $ MENU_ID dans l'exemple suivant:

<?php 
$menu_args = array('menu' => $menu_ID );
wp_nav_menu( $menu_args ); 
?> 


1 commentaires

$ MENU_ID = '195'; $ MENU_ARGS = Array ('Menu' => $ MENU_ID); WP_NAV_MENU ($ MENU_ARGS);



8
votes

C'est exactement ce que vous voulez.

foreach ($menu_items as $menu_item) {
    $id = $menu_item->ID;
    $title = $menu_item->title;
    $url = $menu_item->url;

    if ($parent_id = $menu_item->menu_item_parent) {
        //the element has a parent with id $parent_id, so you can build a hierarchically menu tree
    }
    else {
        //the element doesn't have a parent
    }
}


0 commentaires

1
votes

Pour obtenir le message ID, vous devrez le tirer en utilisant cette fonction:

$ id = get_post_meta ($ Menu_Item-> ID, '_menu_item_object_id', vrai);

Sinon, l'identifiant sera le type de type personnalisé NAV_MENU que WordPress utilise pour les menus. Même Goee pour l'URL $, vous pouvez l'appeler à l'aide de get_permalink ($ ID);


0 commentaires

0
votes
<pre> 
$menu_ID = '195'; // 195 is a menu id this id you can see 
http://example.com/wp-admin/nav-menus.php?action=edit&menu=195
$menu_args = array('menu' => $menu_ID );
wp_nav_menu( $menu_args );  
</pre>

0 commentaires