insérer un élément dans l'élément de liste de menu wp
-
-
Jene connaispasexactement la réponse,mais si vousfaites une recherche dansgoogle sur "wordpressmenu walker",voustrouverez une solution.I don't know exactly the answer, but if you make a search in google about "wordpress menu walker" you will find a solution.
- 1
- 2012-03-15
- andresmijares
-
J'yparviensgénéralementen utilisant unmenu Walker +en utilisant le champ "description" dans lemenu WPnatif afin que les administrateurspuissent ajouter cetexte supplémentaireeux-mêmes sans queje doivefaire quoi que ce soit deprogramme.:) Voici un article sur lafaçon deprocéder: http://www.kriesi.at/archives/improve-your-wordpress-navigation-menu-outputI usually achieve this using a Walker menu + using the "description" field in the native WP menu so admins can add in that extra text themselves without me having to do anything programatic. :) Here's an article on how to do that: http://www.kriesi.at/archives/improve-your-wordpress-navigation-menu-output
- 1
- 2012-03-15
- Michelle
-
@Michelle: Merci Michelle,je suistombé sur cet article aussimaisje n'aipastrouvé letemps d'yjeter un œil.Maintenant quej'ai reçu desencouragements de votrepart,je vais vérifier à coup sûr.Sonne comme une solution élégante.Mais làencore,le champ de descriptionest statiqueet je doisincrémenter la variable.@Michelle: Thanks Michelle, I came across that article as well but didn't find time to take a look. Now that I got encouragement from you I'll check it out for sure. Sounds like an elegant solution. But then again, description field is static and I need to increment variable.
- 0
- 2012-03-15
- daniel.tosaba
-
1 réponses
- votes
-
- 2012-03-15
Vouspouvez utiliser un marcheurpersonnalisé ou simplement filtre letitre dumenu . Cela dépend de laposition dont vous avezbesoinpour votre contenu supplémentaire: doit-il apparaître avant ou à l'intérieur du lien?
Exemple avec unmarcheur
Mise àjour:en fait,celane peutpasfonctionner: lafonctionparent crée le
<li
,vous devez donc copieret ajustertoute lafonctionparent.wp_nav_menu( array ( 'walker' => new WPSE_45647_Walker ) ); class WPSE_45647_Walker extends Walker_Nav_Menu { public function start_el( &$output, $item, $depth, $args ) { $output .= $this->custom_content( $item ); parent::start_el( &$output, $item, $depth, $args ); } /** * Create your extra content here. * @return string */ protected function custom_content( $item ) { // inspect the item and return your // custom content as a string } }
Exemple avec unfiltre
Plus hackish,maispeut-êtreplusfacile à comprendre: saisissez le
<li>
et remplacez<a
par$custom <a
add_filter( 'walker_nav_menu_start_el', 'wpse_45647_add_custom_content', 10, 2 ); function wpse_45647_add_custom_content( $item_output, $item ) { static $counter = 0; // You may inspect $item and do something more creative here. $custom = ++$counter . ' Hello World!'; return str_replace( '<a ', $custom . '<a ', $item_output ); }
You could use a custom walker or just filter the menu title. It depends on the position you need for your extra content: Should it appear before or inside the link?
Example with a walker
Update: Actually, this cannot work: the parent function creates the
<li
, so you have to copy and adjust the whole parent function.wp_nav_menu( array ( 'walker' => new WPSE_45647_Walker ) ); class WPSE_45647_Walker extends Walker_Nav_Menu { public function start_el( &$output, $item, $depth, $args ) { $output .= $this->custom_content( $item ); parent::start_el( &$output, $item, $depth, $args ); } /** * Create your extra content here. * @return string */ protected function custom_content( $item ) { // inspect the item and return your // custom content as a string } }
Example with a filter
More hackish, but maybe easier to understand: Grab the
<li>
and replace<a
with$custom <a
add_filter( 'walker_nav_menu_start_el', 'wpse_45647_add_custom_content', 10, 2 ); function wpse_45647_add_custom_content( $item_output, $item ) { static $counter = 0; // You may inspect $item and do something more creative here. $custom = ++$counter . ' Hello World!'; return str_replace( '<a ', $custom . '<a ', $item_output ); }
-
avant.Mercipour l'homme depointe.si cen'estpastrop deproposer unexemple,je l'apprécierais.before. Thanks for the tip man. if it's not too much to come up with an example I would appreciate it.
- 0
- 2012-03-15
- daniel.tosaba
-
@ daniel.tosaba J'ai ajouté unexemple de Walker.** Nontesté. ** Désolé,je n'aipasbeaucoup detemps.Mais cela devrait vous donner une direction.:)@daniel.tosaba I've added a sample Walker. **Not tested.** Sorry, I don’t have much time. But it should give you a direction. :)
- 1
- 2012-03-15
- fuxia
-
grand homme ...mercibeaucoup ...je seraipartout aujourd'huiet vous diraiplustard comment cela s'estpassé.great man.. thanks a lot.. i'll be all over it today and let you later know how it went.
- 0
- 2012-03-15
- daniel.tosaba
-
@ daniel.tosaba En y réfléchissant,je suis arrivé à une autre solution,peut-êtremeilleure.Voirmamise àjour.@daniel.tosaba Thinking about this, I came to another, maybe better, solution. See my update.
- 0
- 2012-03-15
- fuxia
-
c'est un hommegénial.je suisen train dem'ymettre.mercibeaucouppour votretempset vosefforts !!that's awesome man. i am right now getting on it. thank you so much for your time & effort!!
- 0
- 2012-03-15
- daniel.tosaba
-
Comment ajouteriez-vous une valeurincrémentielle appropriée avant le lienen utilisant laméthode defiltrage?1,2,3,4,etc.Merci!How would you add appropriate incremental value before link using filter method? 1,2,3,4,etc. Thanks!
- 0
- 2012-03-16
- daniel.tosaba
-
GÉNIAL!!C'étaittellementnul demapart ...GREAT!! Thas was so lame of me...
- 0
- 2012-03-16
- daniel.tosaba
-
Comment avez-voustrouvé ce crochetpourfiltre.Est-ce documenté??How did you come up with that filter hook. Is it documented??
- 0
- 2012-03-16
- daniel.tosaba
-
@ daniel.tosaba Je regarde d'abord le code source: `wp-includes/nav-menu-template.php` vous ditpresquetout ce que vous voulez savoir.@daniel.tosaba I look at the source code first: `wp-includes/nav-menu-template.php` tells you almost everything you want to know.
- 0
- 2012-03-16
- fuxia
-
Je l'aitrouvémoi-mêmeici: http://adambrown.info/p/wp_hooks/hook/walker_nav_menu_start_el avec la liste des autres hookspotentiellement utiles.Mercimec!Found it myself here: http://adambrown.info/p/wp_hooks/hook/walker_nav_menu_start_el all along with the list of other potentially useful hooks. Thanks man!
- 0
- 2012-03-16
- daniel.tosaba
-
Ne vousfiezpas à des sourcesexternes,utilisez la source WordPress.Monplugin [All Actions List] (https://gist.github.com/1979171)montretous les hooks appelés lors d'une seule requête.Don’t rely on external sources, use the WordPress source. My plugin [All Actions List](https://gist.github.com/1979171) shows all hooks called during a single request.
- 0
- 2012-03-16
- fuxia
-
Encoremieux,je télécharge cepluginen cemoment !!!Even better, I am downloading that plugin right now!!!
- 0
- 2012-03-16
- daniel.tosaba
-
Hey Toscho,mon amiexpérimenté,commentpuis-je var_dump $item array oùje veux??MercimecHey Toscho, my knowledgeable friend, how can I var_dump $item array anywhere I want?? Thanks man
- 0
- 2012-03-19
- daniel.tosaba
-
[Poser unenouvelle question.] (Http://wordpress.stackexchange.com/questions/ask)[Ask a new question.](http://wordpress.stackexchange.com/questions/ask)
- 0
- 2012-03-19
- fuxia
-
Je vais l'homme dans une seconde .. J'en ai un quiest lié à celui-ciet çame dérange.J'ai donc étendu Walker_Nav ...et placé unenouvelle classe dansmon `functions.php`maisje continue à recevoir unmessage dansmonjournal apache:` [Mon Mar 19 13:38:44 2012] [error] [client 127.0.0.1] PHPAttention: call_user_func_array () s'attend à ce que leparamètre 1 soit un callback valide,la classe 'newgordon_menu'ne setrouvepas dans/var/www/wordpress/wp-includes/nav-menu-template.php sur la ligne 475` Il semble queje placedans unmauvaisendroit,carje souhaite appeler `wp_nav_menu` àpartir demonfichier demodèle d'index.I will man in a second.. I have one which is connected with this one and it's bugging me. So I extended Walker_Nav... and placed new class in my `functions.php` but I keep getting message in my apache log: `[Mon Mar 19 13:38:44 2012] [error] [client 127.0.0.1] PHP Warning: call_user_func_array() expects parameter 1 to be a valid callback, class 'new gordon_menu' not found in /var/www/wordpress/wp-includes/nav-menu-template.php on line 475` It looks like I am placing it in a wrong place, as I wish to call `wp_nav_menu` from my index template file.
- 0
- 2012-03-19
- daniel.tosaba
-
voici le var_dump http://wordpress.stackexchange.com/questions/46135/how-to-var-dump-item-from-anywherehere is the var_dump http://wordpress.stackexchange.com/questions/46135/how-to-var-dump-item-from-anywhere
- 0
- 2012-03-19
- daniel.tosaba
-
compris quej'avais un appelerroné dumarcheur.fonctionnemaintenant !!;)figured out that i had erroneous walker call. works now!! ;)
- 0
- 2012-03-19
- daniel.tosaba
Jene saispas si letitreindique clairement ce queje veux réaliserici,alors laissez-moiessayer de clarifier cela.
Je veux utiliser le système demenus de Wordpresset je dois l'adapter àmesbesoins,ce qui signifie quej'en aibesoinpour aller àpartir d'ici :
ici :
Quelle serait lameilleurefaçon d'yparvenir? J'aijustebesoin de quelquesindications rapidespour y alleret lefairemoi-même sansperdretrop detemps àtrouver la solution appropriée.
Est-ce le
wp_nav_menu()
ouwp_get_nav_menu_items()
queje devrais rechercher? Un échantillon court serait également apprécié si cen'estpastrop demander. Et autre chose ... J'apprécierais un conseil sur lafaçon degénérer unnuméro à l'intérieur de cediv
inséré qui représente l'apparence de l'ordre de l'élément demenu: 1,2,3,etc. Existe-t-il unmoyen de récupérer cela depuis lenoyau de Wordpress?Mercibeaucoup. Toute aide appréciée.