2

mysite.com/portfolio/ など、ポートフォリオにカスタム投稿タイプを使用するカスタム テーマがあります。特定のポートフォリオ アイテムをクリックすると、URL がmysite.com/ポートフォリオ タイプ/name/に変わります。

中間のポートフォリオ タイプの URLを別の値 (例: "showcase")に変更する最も簡単な方法は何ですか?

ここに私の functions.php のカスタム投稿タイプの部分があります:

    // CUSTOM POST TYPES

    function justins_custom_post_types() {


        // Portfolio

        $labels_portfolio = array(
            'add_new' => 'Add New', 'portfolio-type',
            'add_new_item' => 'Add New Portfolio Post',
            'edit_item' => 'Edit Portfolio Post',
            'menu_name' => 'Portfolio',
            'name' => 'Portfolio', 'post type general name',
            'new_item' => 'New Portfolio Post',
            'not_found' =>  'No portfolio posts found',
            'not_found_in_trash' => 'No portfolio posts found in Trash', 
            'parent_item_colon' => '',
            'singular_name' => 'Portfolio Post', 'post type singular name',
            'search_items' => 'Search Portfolio Posts',
            'view_item' => 'View Portfolio Post',
        );
        $args_portfolio = array(
            'capability_type' => 'post',
            'has_archive' => true, 
            'hierarchical' => true,
            'labels' => $labels_portfolio,
            'menu_position' => 4,
            'public' => true,
            'publicly_queryable' => true,
            'query_var' => true,
            'show_in_menu' => true, 
            'show_ui' => true, 
            'supports' => array( 'comments', 'editor', 'excerpt', 'thumbnail', 'title' ),
            'singular_label' => 'Portfolio',
        );
        register_post_type( 'portfolio-type', $args_portfolio );


    }

    add_action( 'init', 'justins_custom_post_types' );


    // CUSTOM TAXONOMIES

    function justins_custom_taxonomies() {


        // Portfolio Categories 

        $labels = array(
            'add_new_item' => 'Add New Category',
            'all_items' => 'All Categories' ,
            'edit_item' => 'Edit Category' , 
            'name' => 'Portfolio Categories', 'taxonomy general name' ,
            'new_item_name' => 'New Genre Category' ,
            'menu_name' => 'Categories' ,
            'parent_item' => 'Parent Category' ,
            'parent_item_colon' => 'Parent Category:',
            'singular_name' => 'Portfolio Category', 'taxonomy singular name' ,
            'search_items' =>  'Search Categories' ,
            'update_item' => 'Update Category' ,
        );
        register_taxonomy( 'portfolio-category', array( 'portfolio-type' ), array(
            'hierarchical' => true,
            'labels' => $labels,
            'query_var' => true,
            'rewrite' => array( 'slug' => 'portfolio-type/category' ),
            'show_ui' => true,
        ));


        // Portfolio Tags   

        $labels = array(
            'add_new_item' => 'Add New Tag' ,
            'all_items' => 'All Tags' ,
            'edit_item' => 'Edit Tag' , 
            'menu_name' => 'Portfolio Tags' ,
            'name' => 'Portfolio Tags', 'taxonomy general name' ,
            'new_item_name' => 'New Genre Tag' ,
            'parent_item' => 'Parent Tag' ,
            'parent_item_colon' => 'Parent Tag:' ,
            'singular_name' =>  'Portfolio Tag', 'taxonomy singular name' ,
            'search_items' =>   'Search Tags' ,
            'update_item' => 'Update Tag' ,
        );
        register_taxonomy( 'portfolio-tags', array( 'portfolio-type' ), array(
            'hierarchical' => true,
            'labels' => $labels,
            'query_var' => true,
            'rewrite' => array( 'slug' => 'portfolio-type/tag' ),
            'show_ui' => true,
        ));

}

テーマのポートフォリオ セクションへの参照 URL: http://html.orange-idea.com/commander/4-columns-portfolio/ (これで問題ありません)

単品: http: //html.orange-idea.com/commander/portfolio-type/summer-time/ (URLに/portfolio-type/を追加)

また、テーマはsingle-portfolio-type.phpファイルで構成されていることにも言及したいと思います。

ありがとうございました。

4

1 に答える 1

1

多分これはあなたが望むことをするでしょう:

RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI}  (.*)/portfolio-type/(.*)
RewriteRule .* http://html.orange-idea.com/%1/showcase/%2  [QSA,R=301,L]

これをリダイレクトします:

http://html.orange-idea.com/commander/portfolio-type/summer-time/

これに:

http://html.orange-idea.com/commander/showcase/summer-time/

逆の場合は、次のようになります。

RewriteEngine On
RewriteBase /
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_URI}  (.*)/showcase/(.*)
RewriteRule .* http://html.orange-idea.com/%1/portfolio-type/%2  [QSA,L]

この着信 URL:: を暗黙のうちにマップします。

http://html.orange-idea.com/commander/showcase/summer-time/

これに:

http://html.orange-idea.com/commander/portfolio-type/summer-time/

于 2012-12-30T11:02:09.343 に答える