[WP] カスタム投稿タイプで404になったらパーマリンク設定の「保存」ボタンだ
カスタム投稿をいじってたら、存在するはずのページが404エラーになってしまった、という経験をしたので、経緯と対処法を書き残しておきます。対処法はタイトルのとおりなんですけども。
404になった経緯
商品紹介を固定ページで作ってた
私はWP大好きですが、自分のブログ以外では会社のサイトの保守しかしていないので、多数の案件をガツガツつくるぜ! という経験がありません。そのため、いままで「カスタム投稿タイプ」を使用する場面に出くわすことがなくて、存在は知っていたのですが使ったことがありませんでした。
で、先日、このブログに自分の著書を紹介するページを作ったのですが、何にも考えずに固定ページでやっちゃったんですね。
- アーカイブページ(親ページ https://ateitexe.com/book/)
- 個別紹介ページ1(子ページ https://ateitexe.com/book/hoge1)
- 個別紹介ページ2(子ページ https://ateitexe.com/book/hoge2)
親子ページにしてURLをこんな感じにしたくて。
そしたら、冊数が増えたら、あれ? これ、めんどくさくね? って思いまして。そこではじめて、「ここがカスタム投稿タイプの使いどころか (( ゚д゚)!!!!」と、今更気がつきました。
固定ページ削除→同じスラッグのカスタム投稿タイプへ
このURLでいろいろ作っちゃった後だったので、「これ、先に作った固定ページのスラッグ変えるか削除しちゃえば、カスタム投稿のほうで同じURL使えるんじゃ?」とアタリをつけて、やってみることに。
- WordPressテーマの作り方 » カスタム投稿タイプを作成する
- Cat Speak | カスタム投稿タイプのアーカイブページを作成する
- カスタム投稿タイプを作成できるWordPressの関数「register_post_type」の使い方まとめ – フラップイズム
カスタム投稿タイプの作り方を紹介してくださっている数々のページを参考にさせていただいて、「book」というスラッグでアーカイブページができるように作ってみる! 管理ページには出てきたぞ―! いけそうだ!!
ページ確認したら、404。
アクセスしてみたらダメだった。404。あれーー?? できると思うんだけどなぁ…。
解決方法
で、ごねごね調べて。
カスタム投稿タイプのCodexに「7. 有効化するときリライトルールをフラッシュする」という項目があるじゃないですかやだー! ちゃんと読めよ!! という話だった。
方法1. パーマリンク設定で「変更を保存」ボタンを押す
それで、タイトルの通りなのですが、「設定」→「パーマリンク設定」で、何もしないで「変更を保存」ボタンを押せば解決です。
なぜかっていうと、上記の「リライトルールをフラッシュする」という内容はパーマリンク設定を変更したときに呼び出されるので、「変更を保存」ボタンを押すことで、直接コードを書かなくても実行してくれるんです。
かんたんということ以上に、コードを直接テーマに書くことの弊害が防げます。リンク記事から、Toroさんの心の叫びが聞こえてきますね!!
方法2. コードを書いて実行する
上の方法に気がつく前にこっちでやってしまったので、一応そのことも書き残しておきます。でも上記の方法のほうがおすすめですよ?
- カスタム投稿タイプのページが404エラーで表示されないときの対処法 | GRAYCODE
- WordPressで作成者(投稿者)アーカイブを作らない方法(リライトルールの勉強) – Gatespace’s Blog
こちらを参考にさせていただいて、flush_rules()
を手動で実行してみることに。
Codexはこちら。黄枠や赤枠に「警告」と書いてあったりして、気軽に使うにはアレな雰囲気をビシビシ感じますねw
// 確実に $wp_rewrite グローバル変数を使う global $wp_rewrite; // flush_rules() を $wp_rewrite オブジェクトのメソッドとして呼び出す $wp_rewrite->flush_rules( false );
上記コードはCodexからの引用です。これを functions.php や header.php など任意のファイルに書いてページを表示させれば実行されます。
注意として、1回だけ実行して消すこと。くれぐれも、書きっぱなしにしてページを読み込むたびに実行されることのないよう気をつけてください。と、Codexにも書かれています。
また、.htaccess をカスタマイズされている方は、flush_rules()
のカッコ内を false にするのをお忘れなく。パラメータが空だと true となり、.htaccess が再生成されてしまうそうです。
結果
やってみたら、見事404だったページが正常に表示されました! ヽ(゚∀゚)ノ
おすすめのプラグイン
私はまだそこまでの領域に行っていないんですが、カスタム投稿タイプにカテゴリ的なもの(カスタムタクソノミー)を設定すると、パーマリンクでハマることが多いのだとか。そんな問題にお悩みの方におすすめなのがこちら。
開発者は我らがWB長野のToro_Unitさんなのです! 人気のプラグインですよー!
2件のコメント
とても助かりました。
ありがとうございます
コメントありがとうございます! お役に立ててよかったです~!!
コメントは承認制ですので、反映までしばらくお待ち下さい。(稀にスパムの誤判定にて届かないこともあるようですので、必要な際はお問い合わせからお願い致します。)
YouTubeでQ&Aコンテンツを企画しています
運営しているYouTubeチャンネルで、ご相談やご質問を募集しています。動画のコメントやお問い合わせページからお気軽にご相談をお寄せください。