web-dev-qa-db-ja.com

カスタム分類法アーカイブページが機能しない

私は、カスタム投稿タイプcourseを関連付けられたカスタム分類法curriculum-areaと持っています。パーマリンクdomain.com/course/には、予想通りすべてのコースのリストが表示されます。しかし、パーマリンクdomain.com/curriculum-area/equalityでは、ホームページが表示されます。 (ホームページは静的ページです)。代わりに、指定されたcurriculum-areacourses内のすべての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 );

}

?>
1
Harry

与えられたパーマリンクは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' ),に変更してください。

私は言うのを忘れて、これらの変更の後にあなたのパーマリンクをフラッシュすることを忘れないでください! (パーマリンク設定ページに行き、保存を押すだけです)。

2
Pieter Goosen

これはテンプレート階層に依存しており、あなたが示したコードではありません。 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

0
Wyck