C'est mon premier projet impliquant WordPress et je suis coincé à essayer de créer un marcheur personnalisé pour un menu de pied de page.
Je veux essentiellement changer le menu de la <ul> <li></li> </ul>
structure en une <p> <span></span> </p>
structure.
Le menu et les trucs affichent un fichier et j'ai pu ajuster les fonctions start_el
et end_el
sans problème, donc j'obtiens maintenant ceci:
<ul> <span>*link*</span> <span>*link*</span> </ul>
Ce qui est évidemment à mi-chemin, j'ai écrit les balises start_lvl()
et end_lvl()
comme indiqué ci-dessous mais elles sont ignorées par WordPress - rien que je mets dedans (même die()
) n'est exécuté (ce qui est un peu suspect) mais je sais que la classe est appelée à cause de la start_el()
fonction.
function start_lvl(&$output, $depth = 0, $args = array()) {
$output = "\n<p class=\"sub-menu\">\n";
}
function end_lvl(&$output, $depth = 0, $args = array()) {
$output .= "\n</p>\n";
}
Est-ce que quelqu'un sait pourquoi cela se produit - ai-je raté quelque chose de vraiment évident!?
J'utilise la dernière version de WordPress sur Apache avec PHP 5.3.6
si cela aide.
Merci d'avance,
Felix :)
Réponses:
Votre classe my_extended_walker est OK, mais lorsque vous appelez la fonction wp_nav_menu , utilisez le paramètre items_wrap .
Start_lvl est utilisé pour les éléments enfants.
la source
Ok, je ne sais pas ce que j'ai mal lu quand j'ai posté ça, mais toute votre classe devrait ressembler à ceci:
Et passez ensuite le 'walker' comme paramètre lorsque vous appelez
wp_nav_menu
wp_nav_menu( array( 'walker'=>new my_extended_walker() ) );
Si vous avez cela, ça devrait aller. Je regarde un code de travail qui fait exactement cela. Je ne sais pas comment y mettre des
<p>
balises. Vous pouvez obtenir un balisage non valide.la source
<div>
au lieu de<p>
simplement voir si je peux obtenir ces fonctions pour faire quoi que ce soit, mais jusqu'à présent, pas de joie :(<div>
et<p>
ne doit pas casser le Walker mais peut entraîner un balisage invalide. Vous avez$output =
et non$output .=
dans votrestart_lvl
. Cela pourrait causer des problèmes. Est-ce le Walker complet que vous avez publié?.=
bit c'est maintenant la classe complète (j'ai supprimé les fonctionsstart_lvl()
etend_lvl()
pour voir si elles ont fait une différence) - pastebin.com/zfcBxHd8Avez-vous pensé à récupérer tous les éléments du menu de navigation à l'aide de la fonction intégrée:
wp_get_nav_menu_items();
et à sortir manuellement le contenu?Exemple :: Création d'une liste de menus simple
la source