自定义帖子类型类别固定链接到/%类别%/%帖子名称%

问题描述:

我已经创建了作为自定义帖子类型的投资组合。我想使永久只为自定义文章类型,如:www.domain.com/custom-post-type-category/postname自定义帖子类型类别固定链接到/%类别%/%帖子名称%

当前永久链接是:www.domain.com/custom-post-type/postname

这是唯一面向完全自定义后。

if(!function_exists("pexeto_register_portfolio_post_type")){ 
    function pexeto_register_portfolio_post_type() { 

     //the labels that will be used for the portfolio items 
     $labels = array(
      'name' => _x('Portfolio', 'portfolio name', 'pexeto'), 
      'singular_name' => _x('Portfolio Item', 'portfolio type singular name', 'pexeto'), 
      'add_new' => _x('Add New', 'portfolio', 'pexeto'), 
      'add_new_item' => __('Add New Item', 'pexeto'), 
      'edit_item' => __('Edit Item', 'pexeto'), 
      'new_item' => __('New Portfolio Item', 'pexeto'), 
      'view_item' => __('View Item', 'pexeto'), 
      'search_items' => __('Search Portfolio Items', 'pexeto'), 
      'not_found' => __('No portfolio items found', 'pexeto'), 
      'not_found_in_trash' => __('No portfolio items found in Trash', 'pexeto'), 
      'parent_item_colon' => '' 
     ); 

     //register the custom post type 
     register_post_type(PEXETO_PORTFOLIO_POST_TYPE, 
      array('labels' => $labels, 
      'public' => true, 
      'show_ui' => true, 
      'capability_type' => 'post', 
      'hierarchical' => false, 
      'rewrite' => array('slug'=>'portfolio'), 
      'taxonomies' => array('portfolio_category'), 
      'supports' => array('title', 'editor', 'thumbnail', 'comments', 'page-attributes'))); 
    } 
} 

if(!function_exists("pexeto_register_portfolio_category")){ 
    function pexeto_register_portfolio_category(){ 

     register_taxonomy("portfolio_category", 
     array(PEXETO_PORTFOLIO_POST_TYPE), 
     array( "hierarchical" => true, 
      "label" => "Portfolio Categories", 
      "singular_label" => "Portfolio Categories", 
      "rewrite" => true, 
      "query_var" => true 
     )); 
    } 
} 
+1

的可能的复制[WordPress的永久链接与自定义后的类型和自定义分类(http://*.com/questions/10296959/wordpress-permalink-with-custom-post-type-and-custom-taxonomy) – vard

+0

不工作,其定制后类型类别/职位 – Ni3

+0

CPT类别=分类 – vard

我建议尝试以下更改所有URL从:post-type:/:post-name::post-category:/:post-name:

function portfolio_post_link($post_link, $post, $leavename) { 
    if($post->post_type == 'portfolio') { 
     $category_slug = get_the_terms($post->ID, 'portfolio_category'); 
     $category_slug = is_array($category_slug) ? '/' . $category_slug[0]->slug . '/' : '/'; 
     $post_link = str_replace('/'.$post->post_type.'/', $category_slug, $post_link); 
    } 
    return $post_link; 
} 
add_filter('post_type_link', 'portfolio_post_link', 10, 3); 

但这是不够的 - 你需要告诉wordress如何处理这些新的URL。我建议先尝试一下上面的代码,看看你是否有这些新的URL。如果是这样,您将不得不添加一些重写规则或使用pre_get_posts操作。