将自定义帖子类型分类法显示为存档页面

时间:2017-08-04 16:50:04

标签: php wordpress

您好我有一个名为results的自定义帖子类型。我还使用分类法为该特定帖子类型创建了类别。我不确定我是否正确设置,但我的代码是有效的,所以我坚持使用它。如果您看到更好的方式或任何错误,请告诉我。

我可以创建自定义帖子并为其设置类别。接下来我想创建一个类似于常规archive.php的类别页面,但仅适用于自定义帖子类型的类别。

所以说我有results的自定义帖子,我将其类别设置为car accidents我想要一种方式来显示它们就像archive.php对普通帖子一样。

我尝试过这样的网址,但是我被发送到404页面,即使我有一个存档结果.php

www.myurl.com/results/categories/car-accidents

以下是我用于设置自定义帖子类型和分类的代码。对不起,如果它很长,但我觉得有必要包括所有内容。

// Create custom post type
function create_posttype() {
    register_post_type( 'Results',
        array(
            'labels' => array(
                'name' => __( 'Results' ),
                'singular_name' => __( 'Results' )
            ),
            'public' => true,
            'has_archive' => true,
            'rewrite' => array('slug' => 'results'),
            'taxonomies'  => array( 'results', 'result-category' ),
        )
    );
}
add_action( 'init', 'create_posttype' );

//Create category for specific post type
function tr_create_my_taxonomy() {
    register_taxonomy(
        'results-categories',
        'results',
        array(
            'label' => __( 'Result Categories' ),
            'rewrite' => array( 'slug' => 'result-category' ),
            'hierarchical' => true,
            'has_archive' => true
        )
    );
}
add_action( 'init', 'tr_create_my_taxonomy' );

我错过了阻止此网址工作的内容吗?

www.myurl.com/results/categories/car-accidents

提前致谢

2 个答案:

答案 0 :(得分:1)

function namespace_add_custom_types( $query ) {
if( is_category() || is_tag() && empty( $query->query_vars['suppress_filters'] ) ) {
$query->set( 'post_type', array(
 'post', 'nav_menu_item', 'cmc-description'
    ));
  return $query;
}
}
add_filter( 'pre_get_posts', 'namespace_add_custom_types' );

答案 1 :(得分:0)

 // Create custom post type
function create_posttype() {
    register_post_type( 'Results',
array(
        'labels' => array(
            'name' => __( 'Results' ),
            'singular_name' => __( 'Results' )
        ),
        'public' => true,
        'has_archive' => true,
        'rewrite' => array('slug' => 'results'),
        'taxonomies'  => array( 'results', 'result-category' ),
    )
);
flush_rewrite_rules();
}
add_action( 'init', 'create_posttype' );

//Create category for specific post type
function tr_create_my_taxonomy() {
register_taxonomy(
    'results-categories',
    'results',
    array(
        'label' => __( 'Result Categories' ),
        'rewrite' => array( 'slug' => 'result-category' ),
        'hierarchical' => true,
        'has_archive' => true
    )
);
}
add_action( 'init', 'tr_create_my_taxonomy' );

我刚刚做了这些更改,请将其复制到您的代码中,看看它是否运行良好