类别和分类法并不完全相同。
类别是default taxonomy
您可以将类别与自定义帖子类型一起使用,但最好使用自定义分类法,因为事实上,它们是以各种方式对各种项目进行分组的一种非常强大的方式。
add_action( \'init\', \'wpsites_custom_taxonomy_types\' );
function wpsites_custom_taxonomy_types() {
register_taxonomy( \'cpt-type\', \'cpt\',
array(
\'labels\' => array(
\'name\' => _x( \'Types\', \'taxonomy general name\', \'themename\' ),
\'add_new_item\' => __( \'Add New CPT Type\', \'themename\' ),
\'new_item_name\' => __( \'New CPT Type\', \'themename\' ),
),
\'exclude_from_search\' => true,
\'has_archive\' => true,
\'hierarchical\' => true,
\'rewrite\' => array( \'slug\' => \'cpt-type\', \'with_front\' => false ),
\'show_ui\' => true,
\'show_tagcloud\' => false,
)
);
}
如果您添加了如上所述的代码,其中添加了创建自定义分类类型的选项,那么您需要创建一个名为以下内容的文件:
taxonomy-cpt-type.php
其中,cpt是自定义帖子类型的名称。
您可以在子主题函数文件中使用上述代码,并用自定义帖子类型的名称替换所有cpt和cpt实例。
您还需要将此行添加到注册自定义帖子类型的代码中:
\'taxonomies\' => array( \'cpt-type\' ),
下面是一个工作示例:
add_action( \'init\', \'wpsites_custom_post_type\' );
function wpsites_custom_post_type() {
register_post_type( \'cpt\',
array(
\'labels\' => array(
\'name\' => __( \'CPT\', \'wpsites\' ),
\'singular_name\' => __( \'CPT\', \'wpsites\' ),
),
\'has_archive\' => true,
\'hierarchical\' => true,
\'menu_icon\' => \'dashicons-portfolio\',
\'public\' => true,
\'rewrite\' => array( \'slug\' => \'cpt\', \'with_front\' => false ),
\'supports\' => array( \'title\', \'editor\', \'author\', \'thumbnail\', \'excerpt\', \'trackbacks\', \'custom-fields\', \'revisions\', \'page-attributes\' ),
\'taxonomies\' => array( \'cpt-type\' ),
)
);
}
同样,用自定义帖子类型的名称替换cpt和cpt的所有实例。
对于自定义post类型的存档页,请使用以下内容:
archive-cpt.php
对于自定义post类型的单页,请使用以下内容:
single-cpt.php
同样,将文件名中的cpt替换为自定义帖子类型的名称。