[Wordpress] - Comment faire une page "racine" pour chaque custom taxonomy ?

iempty

WRInaute discret
Bonour!

Voilà, je sais que y'en a qui tâtent WP ici, alors je me permet de poser ma petite question...

J'ai découvert récemment les custom post types et custom taxonomies... et ça m'a ouvert de nouveaux horizons pour refondre mon blog de recettes de cuisine !

J'ai donc fait un custom post type "recettes", et des custom taxonomies "ingredients" et "ustensiles", attachés à mes recettes. Comme ça je définit à part dans chaque taxonomie mes ingrédients et ustensiles utilisés dans ma recette, au lieu de tous les mélanger dans les "tags" de base comme je faisait avant...

Si je clique sur un de mes ingrédients, j'atteind la page d'archive qui liste toutes les recettes qui utilisent cet ingrédient.
Par exemple "http://monsite.com/ingredients/farine" liste toutes les recettes utilisant de la farine. J'utilise pour afficher ceci la page de template "archive.php" ou "taxonomy.php". Idem pour les ustensiles. La fonction "is_tax()" me renvoie true dans ce cas

Mais j'aimerais avoir une page qui liste tous les ingrédients possibles, avec leur photo et leur nom. Je pensais que cette page serait logiquement accesible via l'URL "http://monsite.com/ingredients", mais cette URL se termine en 404 et utilise donc le template 404.php... la fonction "is_tax()" me renvoie false...

Donc existe-t-il un template et un fonction du genre "is_tax()" que je peux utiliser pour définir dans mon thème comment afficher une taxonomie (et pas un des termes d'une taxonomie) ?

Merci par avance pour vos réponses... j'ai aps trouvé pour le moment !


---
PS : question subsidiaire pour les plus courageux ;-p

Dans mon CPT "recettes", j'ai modifié via le plugin "Custom Post Type UI" le slug en "recette" pour avoir des permaliens du style " "http://monsite.com/recette/<post-name>" (ex: "http://monsite.com/recette/gateau-au-yaourt").

Avant d'utiliser les CPT, j'avais paramétré dans les réglages de mon admin WP, section "Permaliens" que la règle de réécriture des posts était "/%post_id%/%postname%/" (afin d'avoir des meilleures performances, d'après ce que j'avais compris). Avec mon nouveau CPT "recettes", je ne peux pas utiliser j'ai l'impression le post_id... J'ai donc des URLs du style "http://monsite.com/recette/gateau-au-yaourt" eu lieu de "http://monsite.com/recette/123/gateau-au-yaourt"...

Questions : est-ce qu'il faudrait ajouter le post_id dans mes permaliens ou finalement c'est pas si important ? Si c'est important, comment je peux faire ??

MERCI pour m'avoir lu... et par avance merci pour vos réponses !
 

developpements

Nouveau WRInaute
j'aurais bien voulu te répondre, mais je ne te comprends plus a la fin ...
dans le doute :
Plugin : all-in-one-seo-pack (pour gerer tes pages en perfect SEO)
Plugin : category templates (pour définir tes pages en théme x y ou z)
Plugin : simple-tags (un classique pour le tag)

Ainsi tu pourras gerrer l'architecture de tes pages correctement
 

Marie-Aude

WRInaute accro
As tu regardé la hiérarchie des templates dans le codex ? Tu verras comment tu peux faire une "archive" spécifique par type de taxo, ou même par valeur de taxo :D Il suffit de créer les fichiers spécifiques en php.

Sinon la fonction la plus proche de is_tax() est ... is_tax :D
http://codex.wordpress.org/Function_Reference/is_tax
(Suffit de chercher dans le codex, avec le nom de fonction... ou de regarder sur la page des marqueurs conditionnels de modèles)

http://codex.wordpress.org/fr:Hi%C3%A9rarchie_des_fichiers_mod%C3%A8les

http://codex.wordpress.org/images/1/18/Template_Hierarchy.png

Il vaut mieux ajouter le post id dans les permaliens, pour des tas de raison (performance, pas de risque de 404, etc) tu as un marqueur spécifique pour cela %post_id%, mais effectivement cela n'apparait pas pour les custom post types, pour lesquels la réécriture d'url fonctionne comme pour les pages. Il me semble qu'il y a un plugin pour cela...

En revanche je te déconseille la forme /%post_id%/%postname% qui te créé de nombreux dossiers virtuels inutiles, et peux aussi t'empêcher de bloquer via robots.txt certaines urls (comme des archives)
 

iempty

WRInaute discret
hello !

Merci pour vos réponses, je vais potasser tout ça...

Par contre je crois que je me suis mal exprimé... j'avais bien vu la fonction "is_tax", mais elle permet (si j'ai bien saisi) de me dire si une page d'archive d'un terme d'une taxonomie est affichée.

Pour la hiérarchie des templates, je l'avais en effet consultée, mais l'image que j'avais trouvée n'étais pas si complète... ce devait être une plus ancienne version !

Dons si je reprends mon exemple : "ingredients" est le nom de ma taxonomie (groupe de termes sur un thème), et "farine", "oeuf", "sucre" sont des termes qui appartiennent à cette taxonomie. "ustensiles" est une autre taxonomie, avec d'autres termes qui lui sont liés ("casserole", "fouet", "four", ...)

La fonction "is_tax('ingredients','farine')" renverra TRUE si j'affiche la page d'archives de mes recettes avec l'ingrédient farine, accessible via l'URL "http://monsite.com/ingredients/farine" (et le template "taxonomy-$taxonomy-$term.php" sera utilisé si existant)

La fonction"is_tax('ingredients')" renverra TRUE si j'affiche la page d'archives de mes recettes avec n'importe quel ingrédient (farine, oeuf, sucre...) accessible via l'URL "http://monsite.com/ingredients/<nom_de_ingredient>" (et le template "taxonomy-$taxonomy.php" sera utilisé si existant)

La fonction "is_tax()" renverra TRUE si j'affiche la page d'archives de mes recettes avec n'importe quel terme de n'importe quelle taxonomie (un ingrédient ou un ustensile) accessible via l'URL "http://monsite.com/<nom_de_la_taxonomie/<nom_du_terme>" (et le template "taxonomy.php" sera utilisé si existant)

... ce n'est pas cela ?

Dans l'idée, ce qu'il me faut c'est le template "taxonomy-$taxonomy.php", mais je pensais que cela voulait juste dire que ce fichier serait utilisé pour afficher toute page d'archive d'un terme de cette taxonomie. Par exemple "taxonomy-ingredients.php" dera utilisé pour les pages d'archie de "farine", "oeufs", "sucre", etc... mais pas pour afficher la page d'archives de tous les ingrédients !

Ce que je voudrais, c'est afficher une page d'archive d'une taxonomie (ingredients pas exemple) mais pas celle d'un des termes de cette taxonomie...
En fait, ce que je veux faire, c'est comme si je voulais afficher une page qui liste toutes les catégories, ou tous les tags, mais pas tous les articles qui correspondent à une catégorie ou à un tag en particulier... Sauf que je ne sais même pas quelle URL appeler pour accéder à cette page...

Je pense que je vais finir par me faire une règle de réécriture "maison" dans le htaccess du style "http://monsite.com/ingredients", alors appeler le fichier php maison "montemplate_taxonomies.php?taxo=ingredients", et essayer de récupérer à la mimine la liste de tous les termes dans cette taxonomie...

Pfft... pas simple à expliquer tout ça, je me perds un peu, et si il faut je m'embrouille et je mélange des trucs... désolé si c'est le cas !! ;-p

Je vais refaire des tests, je me suis peut être planté la dernière fois.

Hésitez pas si vous avez des pistes ou conseils !

Bonne nuit. :D
 

Marie-Aude

WRInaute accro
iempty a dit:
... ce n'est pas cela ?

Si c'est ça.

iempty a dit:
Dans l'idée, ce qu'il me faut c'est le template "taxonomy-$taxonomy.php", mais je pensais que cela voulait juste dire que ce fichier serait utilisé pour afficher toute page d'archive d'un terme de cette taxonomie. Par exemple "taxonomy-ingredients.php" dera utilisé pour les pages d'archie de "farine", "oeufs", "sucre", etc... mais pas pour afficher la page d'archives de tous les ingrédients !

Les deux.... tu as plusieurs façons d'y arriver, dont une hiérarchie dans ta taxo.

iempty a dit:
En fait, ce que je veux faire, c'est comme si je voulais afficher une page qui liste toutes les catégories, ou tous les tags, mais pas tous les articles qui correspondent à une catégorie ou à un tag en particulier... Sauf que je ne sais même pas quelle URL appeler pour accéder à cette page...
Dans ce cas là tu fais un template de page (pour une fois que ça sert) avec un wp_list et tu crées ensuite une page basée sur ce template. Tu peux lister tous les termes, avec à chaque fois le permalien vers la page d'archive du terme.
 

Discussions similaires

Haut