J'ai post type 'produit' et taxonomie hiérarchique 'types' attachés. Dans cette taxonomie, j'ai des termes: 'nettoyage à sec', 'laveuse', etc. Avec plusieurs sous termes sur chaque terme.
Dans ma situation, j'ai besoin d'afficher, par exemple:
Mes questions sont:
taxonomy-types-washer.php
est-il suffisant pour le cas n ° 1? ou dois-je créer taxonomy-types.php
et créer la logique là-bas?taxonomy-types-{term_parent}.php
pour lister tous les sous-termes et de taxonomy-types.php
pour lister tous les produits en sous-termes.single-product.php
archive-{posttype}.php
ne fonctionne pas quand je n'ai aucun post dessus. Existe-t-il une solution à ça? (devrais-je créer une question différente, ou rester avec celle-ci} _)?UPDATE
J'ai vérifié mes options rewrite_rules
et il ne répertorie pas du tout [types]. Je ne sais pas pourquoi. Pour le tester, je change mon slug en product-types
, rince le permalien et il énumère ceci:
[product-types/([^/]+)/feed/(feed|rdf|rss|rss2|atom)/?$] => index.php?types=$matches[1]&feed=$matches[2]
[product-types/([^/]+)/(feed|rdf|rss|rss2|atom)/?$] => index.php?types=$matches[1]&feed=$matches[2]
[product-types/([^/]+)/page/?([0-9]{1,})/?$] => index.php?types=$matches[1]&paged=$matches[2]
[product-types/([^/]+)/?$] => index.php?types=$matches[1]
Donc je suppose que c'est enregistré maintenant. J'essaie de charger l'URL product-types/washer
il passe à 404. J'essaie de charger l'URL index.php?types=washer
. Ça aussi, ça va 404. Pour le moment, j'ai ces fichiers:
Donc, je ne sais pas ce qui ne va pas avec celui-ci :(.
UPDATE # 2
Je trouve le problème. C'est parce que j'ai raté 'rewrite'=>array('hierarchical'=>true)
Voici le nouveau rewrite_rules
:
[product-types/(.+?)/feed/(feed|rdf|rss|rss2|atom)/?$] => index.php?types=$matches[1]&feed=$matches[2]
[product-types/(.+?)/(feed|rdf|rss|rss2|atom)/?$] => index.php?types=$matches[1]&feed=$matches[2]
[product-types/(.+?)/page/?([0-9]{1,})/?$] => index.php?types=$matches[1]&paged=$matches[2]
[product-types/(.+?)/?$] => index.php?types=$matches[1]
Ces types d’URL sont supportés depuis WP 3.1:
register_taxonomy( 'types', 'post', array(
'hierarchical' => true,
'rewrite' => array( 'hierarchical' => true ),
...
);
N'oubliez pas de vider les règles de réécriture après avoir effectué le changement.
Le modèle que vous utiliseriez pour les termes parents et enfants est taxonomy-types.php:
$current_term = get_queried_object();
if ( 0 == $current_term->parent ) {
// it's a parent term; display it's child terms using wp_list_categories() etc.
} else {
// it's a child term; display the posts using The Loop etc.
}