• 解決済 challengeman

    (@eijitanaka)


    ワードプレス初心者で、現在ローカル環境にてオリジナルテーマを作成中です。

    複数のカスタム投稿タイプを作成しており、それぞれ「A」,「B」,「C」とします。
    A,B,Cそれぞれのパーマリンクを、下記のようにすべて固定ページ「page1」の下階層にあるように表示したいと思っています。
    http://sample.net/page1/A
    http://sample.net/page1/B
    http://sample.net/page1/C

    そこで、functions.phpのregister_post_typeにて投稿タイプA、B、Cすべてに(register_post_typeの記載順はA→B→C)

    'rewrite' => array( 'slug' => 'page1')

    と設定したところ、投稿タイプ「C」しか投稿が表示されず、A,Bについてはヘッダーとフッターしか表示されず記事部分(single-A.php or single-B.php)は読み込まれませんでした。(404エラー)
    異なるカスタム投稿タイプにrewriteにて同じスラッグを設定することは出来ないのでしょうか。

    出来なければその代替手段を教えて頂ければと思います。

    宜しくお願い致します。

3件の返信を表示中 - 1 - 3件目 (全3件中)
  • rewriteのslugに入るのはデフォルトでは$post_typeの値ですので、入れるのであれば
    'rewrite' => array( 'slug' => 'page1/A' )
    のようなことかと思いますが、これでうまく動くのか自信はないです。

    http://wpdocs.m.osdn.jp/関数リファレンス/register_post_type

    Takahashi Fumiki

    (@takahashi_fumiki)

    `
    ^person/(\d+)/? $index.php?p=$matches[1]&post_type=person
    ^person/(\d)/(\d+)/?$ index.php?p=$matches[1]&page=$matches[2]&post_type=person
    `

    投稿タイプ(この例ではperson)のパーマリンクは上のような感じで登録され、該当するものがないかどうか、上から順にためしていき、該当するパターンにマッチした時点で投稿の取得を試みます。

    となると、投稿タイプA, B, Cを登録してあっても、常にCとして判断されることになります。

    > 出来なければその代替手段を教えて頂ければと思います。

    rewrite => falseとして、リライトルールの自動生成を止めた上で、カスタムリライトルールを設定すればよいのですが、面倒な上にバッティングの可能性があるのでやめた方がいいです。うろ覚えですが、WordPressのスラッグは各投稿タイプごとにユニークであることを保証しているので、これは @eijitanaka さんが要望するリライトルールと矛盾します。

    a-type, b-type, c-typeなら、やはり次のようにするのがスマートです。

    – /page1/a-type/[投稿slug]
    – /page1/b-type/[投稿slug]
    – /page1/c-type/[投稿slug]

    トピック投稿者 challengeman

    (@eijitanaka)

    スラッグはユニークでないといけないのですね。

    ご回答頂きありがとうございました。

3件の返信を表示中 - 1 - 3件目 (全3件中)
  • トピック「カスタム投稿のパーマリンク設定について」には新たに返信することはできません。