I have register a custom post type faq
and a taxonomy for faq
named cat_faq
. I created a template named taxonomy-cat_faq.php
, but it is not selected by default. It always displays a 404 page. I could not understand why this happens so? I read out the Template Hierarchy and worked as follows but failed to find out the error. I have attached the code below
add_action('init', 'register_faq');
function register_faq(){
$post_type = 'faq';
$label = array(
'name' => _x('FAQ', 'FAQ', 'faq'),
'singular_name' => _x('FAQ', 'FAQ', 'faq'),
'menu_name' => _x('FAQ', 'admin menu', 'faq')
);
$args = array(
'labels' => $label,
'public' => true,
'rewrite' => array('slug' => 'faq'),
'capability' => 'post',
'supports' => array('title', 'editor', 'thumbnail'),
);
register_post_type($post_type, $args);
}
// create taxonomies for the post type "faq"
add_action( 'init', 'create_faq_taxonomies', 0 );
function create_faq_taxonomies() {
$labels = array(
'name' => _x( 'FAQ', 'taxonomy general name' ),
'singular_name' => _x( 'FAQ', 'taxonomy singular name' ),
'search_items' => __( 'Search FAQ' ),
'edit_item' => __( 'Edit FAQ' ),
'update_item' => __( 'Update FAQ' ),
'add_new_item' => __( 'Add New FAQ' ),
'new_item_name' => __( 'New FAQ' ),
'menu_name' => __( 'Category FAQ' ),
);
$args = array(
'hierarchical' => true,
'labels' => $labels,
'show_ui' => true,
'show_admin_column' => true,
'query_var' => true,
'rewrite' => array( 'slug' => 'cat_faq' ),
);
register_taxonomy( 'cat_faq', array( 'faq' ), $args );
}
It's better to make your custom post types in this fashion. The
flush_rewrite_rules()
will cure the 404's. See The Codex This example is for creating new custom post types on the activation of your plugin.