Tout,
J'utilise le code suivant pour obtenir tous les menus de WordPress définis créés: 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? P> J'ai effectivement découvert ceci: p> 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? P> Merci pour une aide à l'avance! P> p>
5 Réponses :
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;
}
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 );
?>
$ MENU_ID = '195'; $ MENU_ARGS = Array ('Menu' => $ MENU_ID); WP_NAV_MENU ($ MENU_ARGS);
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 } }
Pour obtenir le message ID, vous devrez le tirer en utilisant cette fonction: p>
$ id = get_post_meta ($ Menu_Item-> ID, '_menu_item_object_id', vrai); p>
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); p>
<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>
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