Créer un menu en forme de tableau
-
-
Vous avezposté cette question sous un autrenom d'utilisateuril y aenviron deux semaines.Cela s'appelait "Configuration d'unemiseen pagemodifiable dans l'éditeur WYSIWYG de wordpress".Vous l'avez supprimé,maisil setrouvetoujours dans le cache de Google.C'est un quasi-copier/coller de celui-là.Veuillezne pasfaire ça.You posted this question under a different username about two weeks ago. It was called "Setting up an editable layout in the wordpress WYSIWYG editor". You removed it but it can still be found in Google's cache. This is a near copy/paste of that one. Please don't do that.
- 0
- 2013-01-02
- s_ha_dum
-
J'ai dû le re-publierparce queje l'ai accidentellement suppriméet qu'ilne mepermettraitpas de le refaire.Jene veuxpas re-publiermais s'ilne peutpas êtretrouvé,je devais le récupérer d'unemanière ou d'une autre.I had to re-post it because I accidentally deleted it and it wouldn't let me do it again. I don't mean to re-post but if it can't actually be found I needed to get it back up some how.
- 0
- 2013-01-02
- kia4567
-
Ceciest une question HTML/CSS,pas une question WordPress.This is an HTML/CSS question, not a WordPress one.
- 0
- 2013-01-02
- s_ha_dum
-
Je recherche cependant unplugin qui organise l'éditeur WYSIWYG.Le rembourrage standard: 10pxne fonctionnepas dans ce cas,doncje pense que cela aura à voir avec wordpress.I am looking for a plugin that organizes the WYSIWYG editor though. The standard padding: 10px isn't working in this case, so I believe it will have to do with wordpress.
- 0
- 2013-01-02
- kia4567
-
Les recommandations deplugins sont hors sujet.Voir la [faq].Plugin recommendations are off topic. See the [faq].
- 0
- 2013-01-02
- s_ha_dum
-
1 réponses
- votes
-
- 2013-01-03
Jepense que votre questionest unexempleparfait du problème XY . Dans WordPress,vousne créezpas untelmenu dans un éditeur depublication. Vous utilisez unmenu.
Unefois que vous commencez àpenser à votreproblème àpartir de cepoint,toutestfacile. :)
Commencezparenregistrer unmenu denavigationpersonnalisépour cette liste dans
functions.php
de votrethème:add_action( 'wp_loaded', 'wpse_78027_register_menu' ); function wpse_78027_register_menu() { register_nav_menu( 'services', __( 'A list of your services. Edit the description!', 'theme_textdomain' ) ); }
Vous obtenezmaintenant uneinterfacepour lemenu dans
wp-admin/nav-menus.php
.Ensuite,vous avezbesoin d'unnavigateurpersonnalisépour afficherplus que letexte du lien. Vous avez de la chance,ceproblème a été résolu aussi . Vous avezbesoin d'unbalisagetrès simple,donc…
/** * Custom walker to render the services menu. */ class WPSE_78027_Services_Menu extends Walker_Nav_Menu { public function start_el( &$output, $item, $depth = 0, $args = NULL, $id = 0 ) { $output .= '<li>'; $attributes = ''; if ( ! empty ( $item->url ) ) $attributes .= ' href="' . esc_url( $item->url ) .'"'; $description = empty ( $item->description ) ? '<p>Please add a description!</p>' : wpautop( $item->description ); $title = apply_filters( 'the_title', $item->title, $item->ID ); $item_output = "<a $attributes><h3>$title</h3> <div class='service-description'>$description</div></a>"; // Since $output is called by reference we don't need to return anything. $output .= apply_filters( 'walker_nav_menu_start_el' , $item_output , $item , $depth , $args ); } }
Vous devezmaintenant ajouter lespages à cemenu. N'oubliezpas demodifier la description ou de forcer ce champpour être visible :
Etmaintenant,collez-lesensemble Ouvrez lefichier PHP dumodèle depage dans lequel vous souhaitez utiliser lemenuet ajoutez:
wp_nav_menu( array ( 'container' => FALSE, 'depth' => 1, 'items_wrap' => '<ul id="service-menu">%3$s</ul>', 'theme_location' => 'services', 'walker' => new WPSE_78027_Services_Menu ) );
Parfait.
Dans votrefeuille de style,vouspouvezmaintenant styliser cette liste sans affecter aucun autretableau.
Exemple de code:
#service-menu { background: #aaa685; border-collapse: separate; border-spacing: 10px; display: table; width: 100%; } #service-menu, #service-menu li { border: 3px solid #e9e9e9; } #service-menu li { display: table-cell; list-style: none; padding: 10px; width: 25%; } #service-menu, #service-menu a { color: #fff; } #service-menu h3 { font: bold 1.5em/1 serif; margin: 0 0 .5em; text-transform: uppercase; } .service-description { font: .9em/1.4 sans-serif; }
Résultat:
La rédaction de cette réponse aprisplus detemps que celle du code. :)
I think your question is a perfect example for the XY Problem. In WordPress you do not create such a menu in a post editor. You use a menu.
Once you start thinking about your problem from this point, everything is easy. :)
First register a custom navigation menu for this list in your theme’s
functions.php
:add_action( 'wp_loaded', 'wpse_78027_register_menu' ); function wpse_78027_register_menu() { register_nav_menu( 'services', __( 'A list of your services. Edit the description!', 'theme_textdomain' ) ); }
Now you get an interface for the menu in
wp-admin/nav-menus.php
.Then you need a custom walker to show more than just the link text. You are lucky, this problem has been solved too. You need very simple markup, so …
/** * Custom walker to render the services menu. */ class WPSE_78027_Services_Menu extends Walker_Nav_Menu { public function start_el( &$output, $item, $depth = 0, $args = NULL, $id = 0 ) { $output .= '<li>'; $attributes = ''; if ( ! empty ( $item->url ) ) $attributes .= ' href="' . esc_url( $item->url ) .'"'; $description = empty ( $item->description ) ? '<p>Please add a description!</p>' : wpautop( $item->description ); $title = apply_filters( 'the_title', $item->title, $item->ID ); $item_output = "<a $attributes><h3>$title</h3> <div class='service-description'>$description</div></a>"; // Since $output is called by reference we don't need to return anything. $output .= apply_filters( 'walker_nav_menu_start_el' , $item_output , $item , $depth , $args ); } }
Now you have to add the pages to that menu. Do not forget to edit the description, or force that field to be visible:
And now stick it together. Open the page template PHP file where you want to use the menu and add:
wp_nav_menu( array ( 'container' => FALSE, 'depth' => 1, 'items_wrap' => '<ul id="service-menu">%3$s</ul>', 'theme_location' => 'services', 'walker' => new WPSE_78027_Services_Menu ) );
Perfect.
In your stylesheet you can style this list now without affecting any other table.
Sample code:
#service-menu { background: #aaa685; border-collapse: separate; border-spacing: 10px; display: table; width: 100%; } #service-menu, #service-menu li { border: 3px solid #e9e9e9; } #service-menu li { display: table-cell; list-style: none; padding: 10px; width: 25%; } #service-menu, #service-menu a { color: #fff; } #service-menu h3 { font: bold 1.5em/1 serif; margin: 0 0 .5em; text-transform: uppercase; } .service-description { font: .9em/1.4 sans-serif; }
Result:
Writing this answer took more time than writing the code. :)
-
J'ai laissétomber _Lire la suite_,car quatre liensportant lemêmenom sont superennuyeuxpour les utilisateurs de lecteurs d'écran,et toute laboîteest un lien.I dropped the _Read More_, because four links with the same name are super annoying for screen reader users, and the whole box is a link.
- 0
- 2013-01-03
- fuxia
-
Votretoschoincroyable!Je vaistravailler sur ce soir,sije pouvais vous donner despoints,je leferais (pas que vousen ayezbesoin. Haha)mais ce seraitpour vousmontrer à quelpointj'apprécie que vouspreniez letemps de votrejournéepour écrire cette longue réponsepourmoi.Je vaisexaminer ceproblème XY afin dene pasmanquer deposer labonne questionpour laprochainefois.JE VOUS REMERCIE!Your amazing toscho! I'll be working on this tonight, if I could give you points I would (not that you need them. Haha) but it would be to show you how much I appreciate you taking the time out of your day to write this long answer for me. I'll look into that XY problem so I be sure to ask the correct question for next time. THANKYOU!
- 1
- 2013-01-03
- kia4567
Je viens demettreen place le site il y a quelques semaineset d'y ajouter d'autres élémentspourmon ami,cependant,il doit y avoir unmoyenplus simple demettre du contenu sur wordpress. J'aimême dumal avec çaet j'en code lamoitié (ou dumoinsen ajoutant des styles,en regardant le CSS,ect)
Je regarde spécifiquement les services (àpeuprès la seule chose sur cettepage detest)et comment lesprésenter. Ils sont dans destableaux horribles dontje pense quej'aimême oublié comment les utiliser,mais comment suis-je censéprésenter un contenu comme celui-ci? Existe-t-il unplugin quime facilite la vie (Premium? - J'aientenduparler de Types ou Views,est-ce unbonplugin?).
Cependant,commej'aitravaillé sur ce sujetjusqu'àprésent,quelleest lameilleurefaçon d'obtenir un remplissage à l'intérieur de ces cellules? J'aipresquetoutessayémais celane fonctionnepas ou cela affecte TOUS lestableaux de lapage (lapage d'origine oùil sera quiestici ).
J'ai ajouté le code de latable de déformationici si vous voulez l'examiner.