web-dev-qa-db-fra.com

De quels fichiers modèles ai-je besoin pour personnaliser les liens de catégorie-terme personnalisés plutôt que de recourir à archive.php?

dans mon thème (construit à partir de zéro), je addad types de messages personnalisés et taxonomies personnalisées. À ma structure de modèle, j'ai ajouté:

  • page-customname.php
  • archive-customname.php
  • category-customname.php
  • tag-customname.php

J'ai lié les termes de taxonomie:

/*Custom Term Function*/
function custom_get_terms( $postID, $term ){

$terms_list = wp_get_post_terms($postID, $term);
$output = '';

$i = 0;
foreach( $terms_list as $term ){ $i++;
    if( $i > 1 ){ $output .= ' — '; }
    $output .= '<a href="' . get_term_link( $term ) . '">'. $term->name .'</a>';
}
return $output;
}

/*call in specific templates*/
<?php echo custom_get_terms( $post->ID, 'custom-cat' ); ?>
<?php echo custom_get_terms( $post->ID, 'custom-tag' ); ?>

Dans mon inspecteur, je vois des liens tels que:

<a href="http://localhost:8888/wordpress/custom-cat/term-cat/">term-cat</a>

Mais quand je clique sur le lien, on me présente le fichier archive.php. Comment cela se peut-il, la requête ne devrait-elle pas se replier sur category-customname.php? Au moins, la documentation le dit. Quelqu'un at-il une idée pourquoi cela se produit? Je vous remercie. théo

1
timholz

Les taxonomies personnalisées ont des modèles nommés taxonomy-quelque chose dans cette hiérarchie:

taxonomy-{taxonomy}-{term}.php
taxonomy-{taxonomy}.php
taxonomy.php
archive.php
index.php

Donc, oui, si vous n'avez pas taxonomy-custom-cat-term-cat.php, taxonomy-custom-cat.php ou taxonomy.php, alors archive.php sera utilisé.

category-something.php ne sera utilisé que pour les catégories intégrées, si vous êtes sur une page affichant des messages d'une catégorie appelée "quelque chose".

1
Andy Macaulay-Brook