Menu wordpress

Résolu/Fermé
RomainGA Messages postés 109 Date d'inscription mardi 4 juillet 2017 Statut Membre Dernière intervention 20 avril 2024 - 6 août 2021 à 12:37
RomainGA Messages postés 109 Date d'inscription mardi 4 juillet 2017 Statut Membre Dernière intervention 20 avril 2024 - 12 août 2021 à 18:45
Bonjour,


<?php
$items=wp_get_nav_menu_items(
get_nav_menu_locations("main-menu")["main-menu"]
);
foreach ($items as $menuItem) :
?>
<li class="nav-item">
<a class="nav-link active" aria-current="page" href="<?= $menuItem -> url ?>"><?= $menuItem -> title; ?></a>
</li>
<?php endforeach; ?>

je voiss pas d'erreur ... pls help
A voir également:

3 réponses

Pitet Messages postés 2826 Date d'inscription lundi 11 février 2013 Statut Membre Dernière intervention 21 juillet 2022 524
6 août 2021 à 14:46
Bonjour,

L'erreur indique que le paramètre passé à l'instruction foreach est invalide, autrement dit la variable $items n'est pas un tableau.

La variable $items correspond au retour de la fonction wp_get_nav_menu_items(). D'après la doc, cette fonction retourne soit le tableau des éléments du menu, soit le booléen false si aucun menu ne correspond aux paramètres spécifiés.

La fonction wp_get_nav_menu_items() attends en premier paramètre l'identifiant, le slug, le nom ou l'objet correspondant au menu.

Que retourne la fonction get_nav_menu_locations("main-menu")["main-menu"] dans ton code ? Est-ce que ce retour correspond bien au paramètre attendu par la fonction wp_get_nav_menu_items() ?

Bonne journée,
0
RomainGA Messages postés 109 Date d'inscription mardi 4 juillet 2017 Statut Membre Dernière intervention 20 avril 2024 6
9 août 2021 à 12:58
$items=wp_get_nav_menu_items(get_nav_menu_locations("main-menu")["main-menu"]);
var_dump($items);
$locations=get_nav_menu_locations("main-menu")["main-menu"];
var_dump($locations);


désolé pour le retard de la réponse.
0
jordane45 Messages postés 38144 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 21 avril 2024 4 650 > RomainGA Messages postés 109 Date d'inscription mardi 4 juillet 2017 Statut Membre Dernière intervention 20 avril 2024
9 août 2021 à 13:21
Comme je te l'ai dit dans ton autre discussion, tu vois bien que ta variable ne contient pas du tout ce à quoi tu t'attends...
Il faut donc corriger cela
0
jordane45 Messages postés 38144 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 21 avril 2024 4 650
6 août 2021 à 14:50
Bonjour,
Vu le message d'erreur ... es-tu sûr que $items est bien un Array ??
Fais en un var_dump pour voir et assûre toi qu'il n'est pas vide ou null avant d'essayer de boucler dessus.

$items=wp_get_nav_menu_items(get_nav_menu_locations("main-menu")["main-menu"]);
var_dump($items);

if(!empty($items)){
   foreach	($items as $menuItem) :
?>
	  <li class="nav-item">
        <a class="nav-link active" aria-current="page" href="<?= $menuItem -> url ?>"><?= $menuItem -> title; ?></a>
	  </li>
<?php 
   endforeach; 
}
?>

0
RomainGA Messages postés 109 Date d'inscription mardi 4 juillet 2017 Statut Membre Dernière intervention 20 avril 2024 6
9 août 2021 à 14:38
le tuto que je suis indique :

donc c'est exactement ce que j ai fait:
	<?php 
$items=wp_get_nav_menu_items(get_nav_menu_locations("main-menu")["main-menu"]);

foreach ($items as $menuItem) :
?>
<li class="nav-item">
<a class="nav-link active" aria-current="page"
href="<?= $menuItem -> url ?>"><?= $menuItem -> title; ?></a>
</li>
<?php endforeach; ?>

et la, ya cette erreur:
0
jordane45 Messages postés 38144 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 21 avril 2024 4 650
9 août 2021 à 14:50
Tu as peut-être suivi un tuto .... mais .. ça n'empèche pas que le code contienne des erreurs ...
et nous redonner en boucle le message d'erreur rencontré ne nous aidera pas à avancer sur ton souci !

Comme on te l'a déjà indiqué à plusieurs reprises ..
La commande :
	$items=wp_get_nav_menu_items(get_nav_menu_locations("main-menu")["main-menu"]);

Ne retourne pas, à l'heure actuelle dans ton code, un Array ... mais la valeur "false" .. donc normal que ta boucle ensuite plante !

Alors, il faut que tu trouves pourquoi cette commande ne donne pas ce qui est attendu..

Tu pourrais, pour commencer, découper cette ligne de code et essayer de voir ce que retourne chaque partie pour voir si c'est conforme à ce que ton code attend..
$nml = get_nav_menu_locations("main-menu");
var_dump($nml);

$mainMenu = $nml["main-menu"];
var_dump($mainMenu );

$items=wp_get_nav_menu_items($mainMenu);
var_dump($items );



0
jordane45 Messages postés 38144 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 21 avril 2024 4 650 > jordane45 Messages postés 38144 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 21 avril 2024
9 août 2021 à 14:54
PS: As tu remarqué que le code que je te donne est en couleur et avec la numérotation des lignes ? Pour ça, il faut que tu précises le LANGAGE dans les balises de code.
Explications ( à lire ET A APPLIQUER !! ) disponibles ici : https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code
0
RomainGA Messages postés 109 Date d'inscription mardi 4 juillet 2017 Statut Membre Dernière intervention 20 avril 2024 6 > jordane45 Messages postés 38144 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 21 avril 2024
12 août 2021 à 18:45
dsl du retard de la réponse. juste pour te dire que j'avais enfin réussi a faire pop mon menu;) merci (y) dans wordpresse, le pb était la checkbox du choix du type de menu, je sélectionnait toujours la mauvaise ;) PS: j oublie tout le temps d utiliser les balises, dsl
0