WordPress

WordPress 3.0.1 カスタム投稿タイプのパーマリンクでNot Found

カスタム投稿タイプを定義して投稿データを入力し、いざ表示しようとしたら無情にも「ファイルが見つかりません」の表示。

register_post_type()のパラメータである publicly_queryable、query_var、rewrite や、[管理画面]-[設定]-[パーマリンク設定]の変更、テーマの切り替えなどさんざん変更して試してみるも解決しない。

ただし、パーマリンク設定でデフォルトの状態で

	http://example.com/?custom_post_name=slug

であれば、ページを表示する事ができた。同様に、query_var を利用してのクエリー指定だとページの表示ができた。

自分がリンク表示したいのは、

	http://example.com/custom_post_name/slug

なのだが。

で、解決方法は、カスタム投稿タイプを登録する際「flush_rewrite_rules(false)」を実行したことだった。ようやくパーマリンクで表示するようになった(引っ張りすぎてゴメンナサイ)。

flush_rewrite_rules()のソースを見てみたが、オプションテーブルに登録された「rewrite_rules」を削除する程度の処理しかしてないようで、原因はよく分からない。動作するようになったので、それで「良し」とした。

解決方法を示してくれたページ
Custom Post Types display only 404

パーマリンクのクエリー指定を解り易く解説してくれたページ
Custom Post Type Permalinks