私は現在これを持っています:
mysite.com/product-name
mysite.com/another-product
product-nameやanother-productが投稿されている場所など。
私はそれからChangelogsと呼ばれるカスタム投稿タイプを持っています、それは私がそれぞれの製品のために持っています、それはURLのようなものを持つことは可能です:
mysite.com/product-name/changelog
mysite.com/another-product/changelog
もしそうなら、どうやってそれをやるのだろうか?
Wordpressには "Sub Posts"といったものは既に組み込まれています。
しかし、あなたがそれらを記述するスタイルで "Sub Posts"を導入しているプラグインを作成することは可能かもしれません。
技術的には、サブポストについてではなく、URLレイアウトについて話しています。そのためWordpressでは、表示を他の投稿に切り替えるなど、何らかのプラグインで処理できるエンドポイント( "changelog")を追加します。
これがエンドポイントで適切に機能しなかったが、私はそれがどういうわけか今修正されると思う。それをタフに使用していないので、私の答えはこれまでのところ参考になります。
こんにちは @ Adam:
おそらくご存知のように、すべての"posts"は"Posts"、"Pages"および任意のカスタム投稿タイプと同じデータベーステーブルに格納されます。
"posts"がフィールドpost_parent
available を持っていることを強調するために前のことを言及し、親子を作成するためにそれを正常に使用しましたたとえば、'restaurant'
投稿タイプと'restaurant-location'
投稿タイプの関係。
ただし、URLは少し巧妙で、 Well Designed URLs に関しては私は熱狂的です。重いです。
私はあなたが求めるものに似たコードを実装しました(レストラン/場所の例)が、は非常に壊れやすいであり、望ましくないを作成する可能性があります副作用他のプラグインとので、ここに投稿するのが本当に怖くなり、実際には人々が助けよりも多くのトラブルを引き起こす。
trac と wp-hackers list を頻繁に使用する、よりハードコアなWordPress開発者の一部は、多くの問題があるとは思わないようです私が知っているURLルーティングシステムは、ブログで苦労して他のパターンに実際に使用しようとした人がいらいらしていると感じています。それが私が this ticket を提出した理由であり、近い将来に対処するための専用の時間があることを望みます:
現在、適切に設計されたURLを使用することは非常に困難であり、実行可能なオプションとなるには危険に満ちています。だから短期的には標準的なURLレイアウトに取り組むのに十分な時間があるか、他の誰かがWordPressのURLルーティングシステムを改善するか、誰かが私を直してくれるそれ。
残念ながらそれはあなたが探していた答えではなかったことを知っていますですが、それは正直で心からのものです。
上記の答えを完成させた後、私が最初に考えていたのは、この質問に書かれている答えを活用することによって、あなたがもっと単純にあなたが望むものを達成できるかもしれないということです。
質問のタイトルは、それが関連性があるという意味ではないことを知っていますが、質問は本質的に "sub post"タイプの情報と関連URLに関するものでした。
申し訳ありませんが、私が上記の答えを投稿するまで私には起こりませんでした。
私はしばらくの間それに取り組んでいなかった後にこのプロジェクトに戻ります、そしてこれは私が持っているものです:
私の以前の例と同じように:
mysite.com/product-name/changelog mysite.com/another-product/changelog
それらは(タイプchangelogの)投稿で、実際のスラッグはproduct-name-changelogです。
私はそれからパススルーをするためにリダイレクトプラグインを使用します
/([a-zA-Z0-9-]*)/changelog/$
に
/$1-changelog/
しかし、それは301としてmysite.com/product-name-changelogにリダイレクトすることになる
私はwp_redirectとcanonical_redirectにフックしようとしましたのでリダイレクトを止めることができましたが、これまでのところ何の運もありません。
他に何を試すべきかという提案はありますか?