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

时间:2017-08-04 作者:cup_of

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

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

假设我有一个自定义帖子results 我将其类别设置为car accidents 我希望有一种方法可以像归档一样显示它们。php适用于普通帖子。

我尝试访问这样的url,但我被发送到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\' );
我是否缺少阻止此url工作的内容?

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

提前感谢

1 个回复
最合适的回答,由SO网友:Milo 整理而成

您所需的URL:

www.example.com/results/post-name/
www.example.com/results/categories/category-name/
原始代码的两个更改:

优先级已添加到两个add_action 钩子以反转它们执行的顺序。在这种情况下,顺序很重要,因为帖子类型的附件重写规则覆盖了分类法重写。副作用:附件URL不适用于此帖子类型!

分类法的重写更改为results/categories.


// 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\' ),
        )
    );
}
// ADDED PRIORITY
add_action( \'init\', \'create_posttype\', 9 );

//Create category for specific post type
function tr_create_my_taxonomy() {
    register_taxonomy(
        \'results-categories\',
        \'results\',
        array(
            \'label\' => __( \'Result Categories\' ),
            // CHANGED SLUG
            \'rewrite\' => array( \'slug\' => \'results/categories\' ),
            \'hierarchical\' => true,
            \'has_archive\' => true
        )
    );
}
// ADDED PRIORITY
add_action( \'init\', \'tr_create_my_taxonomy\', 8 );
还请注意,最具体的通用模板是taxonomy-results-categories.php, 这将回到taxonomy.php, 然后archive.php.

结束

相关推荐

Custom archives function

我正在为我的教会网站建立一个自定义档案页面。在我的档案页上,我想把上周的布道放在一个特殊的盒子里,然后是未来的布道,最后是布道档案。我希望将来的布道和布道档案用标题隔开。。。i、 未来的布道布道档案布道档案。。。我的问题是,当我用分页功能点击按钮转到旧的布道帖子时,它会在我所在的每个归档页面上显示当前和未来的布道!如何使当前和未来的布道仅显示在第1页上,而不在单击查看旧帖子时显示?以下是我的功能:// Create the loop for the sermons page function se