私は、カスタム投稿タイプcourse
を関連付けられたカスタム分類法curriculum-area
と持っています。パーマリンクdomain.com/course/
には、予想通りすべてのコースのリストが表示されます。しかし、パーマリンクdomain.com/curriculum-area/equality
では、ホームページが表示されます。 (ホームページは静的ページです)。代わりに、指定されたcurriculum-area
:courses
内のすべてのequality
のアーカイブを表示したいと思います。また、私がfront-page.php
を持っているならば、このアーカイブページもfront-page.php
からのテンプレートを使います。
このカスタム分類にarchive.php
テンプレートを適用するにはどうすればよいですか。
// 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 );
}
?>
与えられたパーマリンクはdomain.com/curriculum-area/equality
ですが、分類法をCurriculum Area
として登録しました。
domain.com/curriculum-area/equality
が機能するようにするには、以下の場所でCurriculum Area
を変更します。
register_taxonomy( 'Curriculum Area', 'course', $args_curriculum_area_taxonomy );
することが:
register_taxonomy( 'curriculum-area', 'course', $args_curriculum_area_taxonomy );
この行'taxonomies' => array( 'curriculum_area' ),
を'taxonomies' => array( 'curriculum-area' ),
に変更してください。
私は言うのを忘れて、これらの変更の後にあなたのパーマリンクをフラッシュすることを忘れないでください! (パーマリンク設定ページに行き、保存を押すだけです)。
これはテンプレート階層に依存しており、あなたが示したコードではありません。 archive.php
は、date、分類法、タグ、作成者、カテゴリ、およびctp archivepagesの代替テンプレートです。そのため、アーカイブ分類ページをレンダリングする必要があります。
あなたのarchive.php
の中のコードを見て、それが何をしているのかを確かめてください。デフォルトのテーマの1つに戻して問題を絞り込むことができます。
通常、curriculum-area
のようなページを作成してtaxonomy-curriculum-area.php
の特定のテンプレートを指定することをお勧めします。必要に応じてtaxonomy-equality.php
を実行することもできます。
参照してください: https://codex.wordpress.org/Template_Hierarchy#Custom_Taxonomies_display