你好,我有一个自定义的帖子类型,叫做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
提前感谢
最合适的回答,由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
.