web-dev-qa-db-ja.com

カスタム投稿タイプのURLスラッグを書き換える

こんにちはStackExchange WP_development :)

私はこれと少し漬け物をしています、そして、私はあなたが私にさらに相談できることを確かに思います。私は「シングルサイト」として構築されているWordPressサイトを手伝っています。私をだましているのは、URLの書き換えです。

私はウェブ上で解決策を探してみましたが、運が悪いです。

サイト構成は以下の通りです

-Main page - Page template
 --City 1 - Page template
   ---VIP - Page template
      ----VIP subpage - Page template
 --City 2 - page template
   ---VIP - Page template
      ----VIP subpage - Page template
 --City 3 - page template
   --- EVENTS - Page template
      ----CPT which redirects out of stucture(single event)

これがURL構造の例です。

Current URL(page templates): www.example.com/city/region/vip
Current URL(for the CPT): www.example.com/event/region/beer-pong/
Desired URL(for the CPT): www.example.com/city/region/event/beer-pong

そして私の登録された投稿タイプは以下を使用しています:

'rewrite'            => array( 'slug' => 'byer/event' ),
'hierarchical'       => true,
'has_archive'        => false,
'supports' => array( 'title', 'editor', 'thumbnail', 'page-attributes'),

通常、WordPressでの開発には気が利いていませんが、私は単純にこれを囲むことはできません。

残念ながら、サイト/ページの「レイヤー」用に開発されたロジックがあるので、URLフォーマットは不可欠です。

与えられた情報があなたを啓発するのに十分であることを私は願っています。

私が欲しいもの:このURLを書き換える:/ event/region/beer-pong /市を含むように:city/region/event/beer-pong

私が持っているもの:現在私のイベントはページではなくカスタム投稿タイプとして作られていますが、クライアントが許可しないので残念ながらこれは変更できません。

これを解決するためにあなたの助けが必要です!

2

都市と地域が常にcityregionの文字列である場合は、次のようにすることができます。

あなたの特定のケースでは、このようにすることができます:

'rewrite'            => array( 'slug' => 'city/region/event' ),
'hierarchical'       => true,
'has_archive'        => false,
'supports' => array( 'title', 'editor', 'thumbnail', 'page-attributes'),

都市がURLになり、都市がLondonになり、地域がSouth Eastになる場合は、global $wp_rewriteを使用してスラッグを追加するための正規表現を記述する必要があります。

あなたはWordPress Codexに関するより多くのドキュメントを見つけることができます - https://codex.wordpress.org/Class_Reference/WP_Rewrite

1
Dale Obradovic