web-dev-qa-db-fra.com

Puis-je afficher les sous-menus en utilisant en wp_list_pages?

Supposons que j'ai des pages de premier niveau (sans parent) appelées Fruit , Animaux , Voitures .

Lorsque, par exemple, Fruit est sélectionné, j'aimerais afficher des liens vers l'individu fruit pages ci-dessous. Je voudrais être capable de dépenser ces fruits (ou animaux , ou voitures ) en plusieurs groupes avec un espace entre chaque groupe de fruits .. un peu comme ceci

+---------------+-----------+--------+
|   Fruit       |  Animals  |  Cars  |
+---------------+-----------+--------+   
|   Apple       |           |        |
|   Kiwi        |           |        |
|   Watermelon  |           |        |
+---------------+-----------+--------+  
|   Banana      |           |        |
|   Lemon       |           |        |
+---------------+-----------+--------+  
|   Strawberry  |           |        |
|   Raspberry   |           |        |
+---------------+-----------+--------+  

Vous pouvez voir que dans ce cas, j'ai brutalement divisé le fruit par couleur, en laissant un espace entre les deux. Pour voitures ou animaux , cela pourrait être un autre critère. Ce critère ne doit pas être explicitement nommé n'importe où. Je me demande donc comment afficher cette liste, de manière à nécessiter peu de capacités techniques pour la personne qui entre les pages dans le backend.

Pour le moment, je fais ceci pour sortir les pages enfants:

if( $post->post_parent )
    $children = wp_list_pages('depth=1&title_li=&child_of='.$post->post_parent.'&echo=0'); 
else
    $children = wp_list_pages('depth=1&title_li=&child_of='.$post->ID.'&echo=0');

echo $children;

Mais je ne vois pas de moyen de limiter la sortie à des catégories ou à quelque chose de similaire en utilisant wp_list_pages. Le plus proche que je peux voir est l'option "auteurs", mais cela n'a pas beaucoup de sens de se connecter en tant qu'utilisateur différent pour créer différents blocs dans les menus ...

5
cannyboy

Vous pourriez peut-être choisir d'utiliser un arbre comme celui-ci:

  • Fruits
    • Couleur1
      • Pomme
      • Pastèque
    • Couleur2
      • Banane
      • Citron
  • Niveau 1
    • Niveau 2
      • Niveau 3

De cette façon, vous pouvez, dans votre thème, masquer le deuxième niveau.

J'espère que cela pourra aider.

1
Mat_

J'ai récemment eu un problème avec wp_list_pages () étant plutôt limité ...

J'ai donc créé une version personnalisée de cette fonction et l'ai publiée sur mon blog @ codeFX.biz

Sur la base de cette fonction, vous pouvez faire ce que vous voulez - sans aucune limitation.

0
Martin Zeitler

Si vous utilisez le système de menus (comme suggéré par Mike), vous pouvez définir une classe pour l'élément de menu que vous souhaitez séparer.

Dans votre exemple, cela ressemblerait un peu à:

  • Pomme
  • Kiwi
  • Pastèque (classe = séparée)
  • Banane
  • Citron (classe = séparé)
  • Fraise
  • Framboise

Vous pouvez ensuite appeler la classe séparée avec une bordure inférieure ou une marge inférieure, ou les deux, si vous le souhaitez.

Et si vous n'êtes pas satisfait d'un simple séparateur, vous pouvez ajouter des classes de couleurs, telles que le vert, le jaune et le rouge, et les ajouter à chaque élément de menu. Cette fois, vous pouvez personnaliser chaque li avec un arrière-plan de cette couleur.

Si vous ne trouvez pas l'élément de classe dans le système de menus, cochez les options d'écran > Afficher les propriétés du menu avancé. > Classes CSS .

0
Daniel Bloemberg