サポート » 使い方全般 » パーマリンクの設定でカスタムタクソノミー名を除外したい

  • こんにちは。

    カスタム投稿タイプ+カスタムタクソノミー+タームの新規作成にともなうパーマリンクのカスタマイズで質問させてください。

    現在、「Custom Post Type Permalinks」というプラグインを利用しています。

    カスタム投稿タイプは「Types」プラグインで生成し、

    下記のような構成になっているのですが、このパーマリンクからカスタムタクソノミー名を除外することができず困っています。

    ◆カスタム投稿タイプ:staff
    ◆カスタムタクソノミー名:club
    ◆ターム名:
    – basketball
    – tennis
    – baseball


    現在:
    http://hogehoge.com/投稿タイプ名/タクソノミー名/ターム名

    パーマリンクの設定(Custom Post Type Permalinksにて)
    http://hogehoge.com/%staff%/%post_id%.html を設定しています。

    上記の構成を、一般投稿記事(Post)と同じようなパーマリンクのつけかたで、
    タクソノミー名を省いた設計に変更したいです。


    現在:http://hogehoge.com/staff/club/basketball/○○○.html
    ↓   ↓   ↓
    理想:http://hogehoge.com/staff/basketball/○○○.html

    カスタムタクソノミー名をパーマリンクから中抜するための方法について、アドバイスお願い申し上げます。

6件の返信を表示中 - 1 - 6件目 (全6件中)
  • トピック投稿者 haha taduko

    (@shimodar)

    すみません。

    自己レスです。

    どうもTypesとPCustom Taxonomy Permalinksの設定だけでは難しそうでした。

    functions.phpへの記述方法を探してみます。

    モデレーター gatespace

    (@gatespace)

    トピック投稿者 haha taduko

    (@shimodar)

    >gatespace様

    ヒント記事の紹介ありがとうございました。

    ただ、add_rewrite_ruleのfunctions.phpへの記述方法がわからず、
    もう少しヒントをいただけましたら助かります。

    いま、2つ目のリンク記事を参考に

    example.com/category/

    が存在しないのと同様に、

    example.com/menu/food/

    のようなパーマリンクは存在しません。カスタム分類“food”にたとえば、“fish”というタームが存在する場合、

    example.com/food/fish/

    が、アーカイブへのリンクとなります。

    ここから、先の私があげたサンプルから

    http://hogehoge.com/カスタム分類/ターム名/○○○.html

    でアクセスすることはできました。

    ですので、カスタム投稿名とカスタム分類名をあわせていけばいいのかなと予想しているのですが、これがスマートで最善な方法かについては、まだ不安を感じています。

    このアプローチが正しいのか自信が持てず、もし他にもこういう考え方で設定してみてはというヒントをいただけると嬉しいです。

    また随時私の方からも報告させてください。

    どうぞ宜しくお願いいたします。

    トピック投稿者 haha taduko

    (@shimodar)

    自己レスです。

    カスタム分類名をカスタム投稿名にあわせて、ばかそうかと思ったのですが、
    Typesプラグインの設定では、

    同じスラッグ名(カスタム投稿タイプ名のstaff)を入力しようとしたところ、

    下記のエラーがでて、割り当てできませんでした。

    それはWordPressにより使用される予約語であるため、このスラグを使用することはできません。異なるスラグを選択してください。

    一旦、上記のアプローチでのトライをあきらめようと思います。

    教えてくださった紹介ページで記述されている内容は、Typesプラグインのカスタムタクソノミー設定画面でいうところの下記の箇所で設定できる可能性を感じているのですが、

    上書き
    この書式で固定リンクを上書きする。初期設定はクエリーバーとして$taxonomyを使用します。
    このスラグでpostが追加されました 入力エリア[ ]
    任意. このスラグでpostを追加 – taxonomy名の初期設定

    この説明文章の日本語内容がうまく理解できず、入力エリアにどう記述すればいいか頭を悩ませています。

    またここを足がかりに調査進めてみます。

    トピック投稿者 haha taduko

    (@shimodar)

    Typesプラグインの

    このスラッグでpostが追加されました

    の入力欄に、カスタム投稿タイプ名の「staff」を追加したところ、

    カスタム投稿タイプのタームアーカイブURLを目的どおり

    http://hogehoge.com/投稿タイプ名/ターム名

    とすることができました。

    現在の設定内容は下記のとおりです。


    Typesプラグインにて
    詳細→上書き→このスラグでpostが追加されました [ staff ]


    Custom Post Type Permalinksプラグインにて
    設定→パーマリンク設定→
    staff(カスタム投稿タイプ名) http://hogehoge.com/staff//%post_id%.html

    ※□カスタム分類のアーカイブのパーマリンクを変更する。にチェック有り

    このような環境なのですが、

    残念なことに、上記設定で、タームのアーカイブURLにはアクセスできるようになったのですが、

    今度は、カスタム投稿タイプの個別記事にアクセスできない(404 not found)状況になってしまいました。

    例:http://hogehoge.com/staff/○○○.html → アクセスできなくなる

    これは、固定ページでstaff.htmlというページを用意しているために、
    もしかすると、その子ページとして解釈されてしまうところで
    バッティングが起きているのか?と考え、

    固定ページのスラッグをstaffからstaffsに変更して切り分けてみるのですが
    現象がかわらずでした。

    現在、どちらかのプラグインの利用をあきらめて、上記問題を回避することも考えているところです。

    なかなか、うまくいかずです、、

    トピック投稿者 haha taduko

    (@shimodar)

    事後報告です。

    結局、「Types」プラグインから離れて、
    functions.phpに手書きで、カスタム投稿と分類を記述し、
    rewrite slugの設定をいれたところ、目的とするタームアーカイブURL構造を
    実現することができました。

    ただ、今回設定したrewrite slugのIDと、同slug IDを使った固定ページが
    バッティングしている様子で、

    そのページのサブページ(子ページ)は404 Not Foundという結果になり片手落ちとなっています。

    なかなかうまくいきません (´・ω・`)

6件の返信を表示中 - 1 - 6件目 (全6件中)
  • トピック「パーマリンクの設定でカスタムタクソノミー名を除外したい」には新たに返信することはできません。