web-dev-qa-db-ja.com

ワードプレスのURLでportfolio_categoryスラッグを使う

私はうそをつくことはありません - 私はphpを知りませんが、テーマをカスタマイズして希望どおりに動作させる方法を見つけることを試みることを楽しんでいます。任意の助けは非常に高く評価されます。

私がやろうとしていること:

私が使っているwordpressテーマには、ポートフォリオを公開するためのセクションがあります。

ポートフォリオページのURLは次のようになります。

mysite.com/portfolio/example-portfolio

新しいポートフォリオを作成するときは、新しい投稿を作成するときとほぼ同じ方法で、ポートフォリオカテゴリを割り当てることができます。

私のポートフォリオURLを以下のように表示させたいと思います。

mysite.com/portfolio-category/example-portfolio

私はこれを可能にするために編集可能かもしれないと疑うコードの領域を強調しました、しかしそれは私の冒険が悲しいことに終わるところです:(

これがコードです:

function mysite_post_types() {
    register_post_type('portfolio', array(
        'labels' => array(
            'name' => _x('Portfolios', 'post type general name', MYSITE_ADMIN_TEXTDOMAIN ),
            'singular_name' => _x('Portfolio', 'post type singular name', MYSITE_ADMIN_TEXTDOMAIN ),
            'add_new' => _x('Add New', 'portfolio', MYSITE_ADMIN_TEXTDOMAIN ),
            'add_new_item' => __('Add New Portfolio', MYSITE_ADMIN_TEXTDOMAIN ),
            'edit_item' => __('Edit Portfolio', MYSITE_ADMIN_TEXTDOMAIN ),
            'new_item' => __('New Portfolio', MYSITE_ADMIN_TEXTDOMAIN ),
            'view_item' => __('View Portfolio', MYSITE_ADMIN_TEXTDOMAIN ),
            'search_items' => __('Search Portfolios', MYSITE_ADMIN_TEXTDOMAIN ),
            'not_found' =>  __('No portfolios found', MYSITE_ADMIN_TEXTDOMAIN ),
            'not_found_in_trash' => __('No portfolios found in Trash', MYSITE_ADMIN_TEXTDOMAIN ), 
            'parent_item_colon' => ''
        ),
        'singular_label' => __('Portfolio', MYSITE_ADMIN_TEXTDOMAIN ),
        'public' => true,
        'exclude_from_search' => false,
        'show_ui' => true,
        'capability_type' => 'post',
        'hierarchical' => true,
        'rewrite' => array( 'with_front' => false, 'slug' => 'products' ),

'mysite.com/ portfolio / example-portfolio'を 'mysite.com/ products / example-portfolio'に変更する方法はわかりました(例の最後の行)。やめたくない!

ポートフォリオを分類できるので、生成されたURLでこれを利用したいと思います。

あまり多くの作業を伴わなくてもこれは確かに可能であり、私自身よりも多くのphp知識を持っている人(これはそれほど時間がかかりません!)が私に解決策を求めさせてくれたら

ありがとう

1
ste.b

追加する

'rewrite' => array('slug' => 'portfolio-categories'),

しかし削除することを忘れないでください(それがなぜそこにあるのかわからない、それはスラッグを隠しますが同時に "products"に名前を変更しようとしますか?)

'rewrite' => array( 'with_front' => false, 'slug' => 'products' ),

だからそれはこのようになります:

function mysite_post_types() {
register_post_type('portfolio', array(
    'labels' => array(
        'name' => _x('Portfolios', 'post type general name', MYSITE_ADMIN_TEXTDOMAIN ),
        'singular_name' => _x('Portfolio', 'post type singular name', MYSITE_ADMIN_TEXTDOMAIN ),
        'add_new' => _x('Add New', 'portfolio', MYSITE_ADMIN_TEXTDOMAIN ),
        'add_new_item' => __('Add New Portfolio', MYSITE_ADMIN_TEXTDOMAIN ),
        'edit_item' => __('Edit Portfolio', MYSITE_ADMIN_TEXTDOMAIN ),
        'new_item' => __('New Portfolio', MYSITE_ADMIN_TEXTDOMAIN ),
        'view_item' => __('View Portfolio', MYSITE_ADMIN_TEXTDOMAIN ),
        'search_items' => __('Search Portfolios', MYSITE_ADMIN_TEXTDOMAIN ),
        'not_found' =>  __('No portfolios found', MYSITE_ADMIN_TEXTDOMAIN ),
        'not_found_in_trash' => __('No portfolios found in Trash', MYSITE_ADMIN_TEXTDOMAIN ), 
        'parent_item_colon' => ''
    ),
    'singular_label' => __('Portfolio', MYSITE_ADMIN_TEXTDOMAIN ),
    'public' => true,
    'exclude_from_search' => false,
    'show_ui' => true,
    'capability_type' => 'post',
    'hierarchical' => true,
    'rewrite' => array('slug' => 'portfolio-categories')
     )
    );

register_post_typeが正しく閉じていることを確認してください。投稿したコードは配列の途中で終わります。私はあなたのためにそれを閉じました、しかし、あなたが何かを省いたかどうか私はわかりません。ここにいくつかの例: http://codex.wordpress.org/Function_Reference/register_post_type

3
Josh

あなたはパーマリンクでこれをしてもらえませんか?

http://codex.wordpress.org/Using_Permalinks

0
Tom Kiddle