我们可以为自定义帖子类型使用内置类别吗?以及如何访问新自定义帖子类型的类别页面(url)。
答案 0 :(得分:1)
是的,您可以在自定义帖子类型中添加内置类别。
只需将以下代码添加到functions.php
文件
add_action( 'init', 'add_category_taxonomy_to_custom_post' );
function add_category_taxonomy_to_custom_post() {
register_taxonomy_for_object_type( 'category', 'custom_post' );
}
其中custom_post
是帖子类型键。
答案 1 :(得分:0)
为自定义帖子类型使用内置类别
答案 2 :(得分:0)
真正的解决方案是将CTP slug设置为“slug /%category%”
然后更新CPT永久链接 (将以下代码放在functions.php中)
add_filter('post_link', 'category_permalink', 1, 3);
add_filter('post_type_link', 'category_permalink', 1, 3);
function category_permalink($permalink, $post_id, $leavename) {
//con %category% catturo il rewrite del Custom Post Type
if (strpos($permalink, '%category%') === FALSE) return $permalink;
// Get post
$post = get_post($post_id);
if (!$post) return $permalink;
// Get taxonomy terms
$terms = wp_get_object_terms($post->ID, 'category');
if (!is_wp_error($terms) && !empty($terms) && is_object($terms[0]))
$taxonomy_slug = $terms[0]->slug;
else $taxonomy_slug = 'no-category';
return str_replace('%category%', $taxonomy_slug, $permalink);
}
在category.php的顶部,添加一个支票
$segments = explode('/', trim(parse_url($_SERVER['REQUEST_URI'], PHP_URL_PATH), '/'));
//print_r($segments);
if($segments[1] == 'CPT Slug'){ //Change CPT Slug to your own slug
//Show CPT posts
}else{
//General posts
}