自定义分类存档页面不起作用

时间:2014-02-23 作者:Harry

我有一个自定义的帖子类型,course 具有关联的自定义分类法curriculum-area. 在permalink上domain.com/course/, 所有课程的列表如预期所示。然而,在permalink上domain.com/curriculum-area/equality, 它显示主页。(主页是一个静态页面)。相反,我希望它显示所有courses 在指定的curriculum-area: 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 );

}

?>

2 个回复
SO网友:Pieter Goosen

您的永久链接为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\' ),

我忘了说,在这些改变之后,记得冲洗你的永久链接!(转到永久链接设置页面,只需按Save)。

SO网友:Wyck

这取决于模板层次结构,而不是显示的代码。archive.php 是日期、分类、标记、作者、类别和ctp存档页的回退模板。因此,它应该呈现归档分类页面。

查看您的archive.php 看看它在做什么,例如,它可以加载一个特定的循环,或者包含另一个执行循环的文件。您可以恢复到默认主题之一以缩小问题范围。

通常最好是为curriculum-area 通过创建页面,如taxonomy-curriculum-area.php 如果你想你甚至可以taxonomy-equality.php.

请参见:https://codex.wordpress.org/Template_Hierarchy#Custom_Taxonomies_display

结束

相关推荐

显示Archives.php中的所有自定义帖子类型

我该怎么做?archive.php 只有以下内容:wp_get_archives(\'type=monthly\'); 以及wp_get_archives() 没有显示所有帖子类型的参数。我也认为archive-[post_type].php 不是我要找的,因为我希望所有帖子类型都显示在一个归档页面中。谢谢W