我为标签创建了自定义分类
function create_topics_nonhierarchical_taxonomy() {
// Labels part for the GUI
$labels = array(
'name' => _x( 'Topics', 'taxonomy general name' ),
'singular_name' => _x( 'Topic', 'taxonomy singular name' ),
'search_items' => __( 'Search Topics' ),
'popular_items' => __( 'Popular Topics' ),
'all_items' => __( 'All Topics' ),
'parent_item' => null,
'parent_item_colon' => null,
'edit_item' => __( 'Edit Topic' ),
'update_item' => __( 'Update Topic' ),
'add_new_item' => __( 'Add New Topic' ),
'new_item_name' => __( 'New Topic Name' ),
'separate_items_with_commas' => __( 'Separate topics with commas' ),
'add_or_remove_items' => __( 'Add or remove topics' ),
'choose_from_most_used' => __( 'Choose from the most used topics' ),
'menu_name' => __( 'Topics' )
);
// Now register the non-hierarchical taxonomy like tag
register_taxonomy('topics','post',array(
'hierarchical' => false,
'labels' => $labels,
'show_ui' => true,
'show_admin_column' => true,
'update_count_callback' => '_update_post_term_count',
'query_var' => true,
'show_in_nav_menus' => true,
'rewrite' => array( 'slug' => 'topic' ),
));
}
并将其连接到我的自定义帖子类型
register_post_type( 'video', array(
...
'taxonomies' => array( 'topics' ),
...
) );
自定义帖子类型使用archive-video.php
作为存档模板。是否可以使用相同的归档模板进行自定义分类?不重复文件并重命名。
答案 0 :(得分:4)
我会创建分类文件并让它加载存档文件。这样可以避免同一个文件的两个副本需要保持同步。 WooCommerce对产品类别和标签使用相同的方法。
创建taxonomy-topics.php
并添加以下代码:
<?php
// Find and load the archive template.
locate_template( 'archive-video.php', true );
答案 1 :(得分:3)
您可以使用template_include
过滤器来设置特定条件所需的模板
您可以尝试这样的事情
add_filter( 'template_include', function ( $template ) {
if ( is_tax( 'topics' ) ) {
$new_template = locate_template( array( 'archive-video.php' ) );
if ( '' != $new_template ) {
return $new_template ;
}
}
return $template;
}, PHP_INT_MAX, 2 );