J'ai un type de message personnalisé, course
avec une taxonomie personnalisée associée curriculum-area
. Sur le permalien domain.com/course/
, une liste de tous les cours est affichée comme prévu. Cependant, sur le permalien domain.com/curriculum-area/equality
, il affiche la page d'accueil. (La page d'accueil est une page statique). J'aimerais qu'il affiche à la place une archive de toutes les courses
dans le curriculum-area
: equality
spécifié. De plus, si j'ai un front-page.php
, cette page d'archive utilise également le modèle de front-page.php
.
Comment puis-je obtenir le modèle archive.php
à appliquer à cette taxonomie personnalisée?
// functions.php:
<?php
// add thumbnail support
add_theme_support( 'post-thumbnails' );
// add custom post type 'Course'
add_action( 'init', 'register_cpt_course' );
function register_cpt_course() {
// custom taxonomy - curriculum area
$args_curriculum_area_taxonomy = array(
'hierarchical' => true,
'labels' => array(
'name' => 'Curriculum Areas',
'singular_name' => 'Curriculum Area'
),
'show_ui' => true,
'show_admin_column' => true,
'update_count_callback' => '_update_post_term_count',
'query_var' => true,
'rewrite' => true
);
register_taxonomy( 'Curriculum Area', 'course', $args_curriculum_area_taxonomy );
// custom post type - course
$cpt_course_args = array(
'labels' => array(
'name' => 'Courses',
'singular_name' => 'course'
),
'hierarchical' => false,
'description' => 'The place to display courses',
'supports' => array( 'title', 'editor', 'thumbnail', 'custom-fields', 'revisions' ),
'taxonomies' => array( 'curriculum_area' ),
'public' => true,
'show_ui' => true,
'show_in_menu' => true,
'menu_position' => 5,
'show_in_nav_menus' => true,
'publicly_queryable' => true,
'exclude_from_search' => false,
'has_archive' => true,
'query_var' => true,
'can_export' => true,
'rewrite' => array(
'slug' => 'course',
'with_front' => true
),
'capability_type' => 'post'
);
register_post_type( 'course', $cpt_course_args );
}
?>
Votre permalien est domain.com/curriculum-area/equality
, mais vous avez enregistré votre taxonomie sous le nom Curriculum Area
.
Pour que domain.com/curriculum-area/equality
fonctionne, changez Curriculum Area
dans:
register_taxonomy( 'Curriculum Area', 'course', $args_curriculum_area_taxonomy );
être:
register_taxonomy( 'curriculum-area', 'course', $args_curriculum_area_taxonomy );
Modifiez également cette ligne 'taxonomies' => array( 'curriculum_area' ),
en 'taxonomies' => array( 'curriculum-area' ),
J'ai oublié de dire, n'oubliez pas de vider vos permaliens après ces changements! (En allant sur la page des paramètres de Permalinks et en appuyant simplement sur Sauvegarder).
Cela dépend de la hiérarchie de vos modèles et non du code que vous avez affiché. archive.php
est le modèle de secours pour date, taxonomie, tag, auteur, catégorie et archive ctp pages. Donc, il devrait être rendu votre page taxonomie des archives.
Examinez le code dans votre archive.php
et voyez ce qu'il fait. Par exemple, il peut charger une boucle spécifique ou inclure un autre fichier qui effectue la boucle. Vous pouvez revenir à l’un des thèmes par défaut pour affiner le problème.
Il est généralement judicieux de spécifier un modèle spécifique pour curriculum-area
en créant une page telle que taxonomy-curriculum-area.php
. Si vous le souhaitez, vous pouvez même créer taxonomy-equality.php
.
Voir: https://codex.wordpress.org/Template_Hierarchy#Custom_Taxonomies_display