次のURL構造を作成しようとしています。
example.com/attractions <-- post type archive
example.com/attractions/taxonomy_term <-- taxonomy archive
example.com/attractions/van-gogh-museum <-- custom post type
残念ながら、これはデフォルトでは不可能です。SEユーザーsanchothefatが この質問に答えて書いたように、WordPressはURLに分類基準を必要とします :
... taxonomy-slugをそこに配置したくない場合は不運ですどの分類学から、投稿は何ですか。
言い換えれば、WordPressはこのパーマリンク構造を必要とします:
example.com/attractions/taxonomy_base/taxonomy_term
私の質問: WordPress書き換えAPIを使ってこれを機能させる方法はありますか?
私はそれが2つのステップを含むと思います:
URLから分類基準を削除するコードスニペットを見つけました。
global $wp_rewrite;
$wp_rewrite->extra_permastructs['taxonomy_base'] = array('%taxonomy_base%', EP_NONE);
( 情報源 - ページ下部の最後の答えを参照)
WordPressはポストが分類アーカイブかポストタイプかを見分けることができないので、しかしこれは完全な解決策ではありません...
この著者の すばらしい記事 on プリティURLを使用したAdvanced Taxonomy Queries
あなたが求めていることはそれほど難しくありませんが、それは少しトリッキーかもしれません。書き換え規則では、2番目の用語がどんな種類のものであるかを知る必要があります。そのように書き直すことができます / Attraction /の後のはすべて分類法のURLとして扱われますが、両方を行うのは少し面倒です。
同じ問題を抱えている人のために、 この議論 / WordPress Answersを見てください。特にMikeSchinkelのプラグインコードが役に立つかもしれません。
これは、分類基準とURLの用語を組み合わせたWPCandyの興味深い例です。http://wpcandy.com/pros/experienced/with-multisite
最近私は同じ状況に出くわしました、そして、解決策を探すのに費やしても見つからなかったので、私は自分自身で working solutionを書きました。
秘訣はWordpressのwp_rewriteを使うこと、そしてWordpressが最初にパーマリンクを生成するときにあなたのURLをそれに追加することです。
私はすべてを自動的に行うための簡単な関数を書き、私のブログですべてを説明しました(同じコードを2回貼り付けたくない)ので、ぜひチェックしてください;)
http://someweblog.com/wordpress-custom-taxonomy-with-same-slug-as-custom-post-type/
カスタム分類法とデフォルトの分類法のスラッグベースを削除するプラグインをWordpressディレクトリに追加しました。あなたはそれをここで見つけることができます - http://wordpress.org/extend/plugins/wp-no-taxonomy-base/ /