私は、ユーザーが分類法によって投稿タイプのアーカイブをフィルタリングできるようにする、かなり基本的なフォームを作成しました。
カスタム投稿タイプでは、これをURLに?taxonomy_name=term_slug
を設定するだけで簡単に行えます。 WPは、?taxonomy_name[]=term_slug1&taxonomy_name[]=term_slug2
を含む一連の用語もサポートしています。
しかし奇妙なことに、nonカスタム投稿タイプ(つまり「投稿」投稿タイプ)のアーカイブでは、これは機能しなくなります。 ?category=term_slug
を設定しても絶対に何もしません。
できればpre_get_posts
やその他の高度なものを使わずに、通常の投稿を分類法(category
とpost_tag
)でフィルタリングするにはどうすればよいですか。
デフォルトの投稿が同じテーブルに格納されていても、動作や特性が異なる場合でも同様です。 CPTには投稿タイプのアーカイブがありますが、デフォルトの投稿タイプのアーカイブはブログと呼ばれ、分類フィルターはタグ/カテゴリアーカイブと呼ばれます。
カテゴリ/タグアーカイブにアクセスするには
カテゴリの場合:
/?cat={category_id} //e.g. ?/cat=5
タグの場合:
/?tag={tag_slug} //e.g. ?/tag=my_tag_slug
もしあなたがpre_get_posts
を使っても構わないと思うなら、あなたはこれをあなたが望むやり方でカスタマイズすることができます( それがWordPress <3 で私が好きなものです)。
もう1つの注意:ブログ用のデフォルトの投稿はそのような種類のカスタムメイドのビルドに決して使わないことをお勧めします。代わりに、ブログからCMSにあなたのサイトを使いたいだけCPTを使ってください:)