404になった経緯

商品紹介を固定ページで作ってた

私はWP大好きですが、自分のブログ以外では会社のサイトの保守しかしていないので、多数の案件をガツガツつくるぜ! という経験がありません。そのため、いままで「カスタム投稿タイプ」を使用する場面に出くわすことがなくて、存在は知っていたのですが使ったことがありませんでした。

で、先日、このブログに自分の著書を紹介するページを作ったのですが、何にも考えずに固定ページでやっちゃったんですね。

  • アーカイブページ(親ページ https://ateitexe.com/book/)
  • 個別紹介ページ1(子ページ https://ateitexe.com/book/hoge1)
  • 個別紹介ページ2(子ページ https://ateitexe.com/book/hoge2)

親子ページにしてURLをこんな感じにしたくて。

そしたら、冊数が増えたら、あれ? これ、めんどくさくね? って思いまして。そこではじめて、「ここがカスタム投稿タイプの使いどころか (( ゚д゚)!!!!」と、今更気がつきました。

固定ページ削除→同じスラッグのカスタム投稿タイプへ

このURLでいろいろ作っちゃった後だったので、「これ、先に作った固定ページのスラッグ変えるか削除しちゃえば、カスタム投稿のほうで同じURL使えるんじゃ?」とアタリをつけて、やってみることに。

カスタム投稿タイプの作り方を紹介してくださっている数々のページを参考にさせていただいて、「book」というスラッグでアーカイブページができるように作ってみる! 管理ページには出てきたぞ―! いけそうだ!!

ページ確認したら、404。

アクセスしてみたらダメだった。404。あれーー?? できると思うんだけどなぁ…。

解決方法

で、ごねごね調べて。

カスタム投稿タイプのCodexに「7. 有効化するときリライトルールをフラッシュする」という項目があるじゃないですかやだー! ちゃんと読めよ!! という話だった。

方法1. パーマリンク設定で「変更を保存」ボタンを押す

それで、タイトルの通りなのですが、「設定」→「パーマリンク設定」で、何もしないで「変更を保存」ボタンを押せば解決です。

なぜかっていうと、上記の「リライトルールをフラッシュする」という内容はパーマリンク設定を変更したときに呼び出されるので、「変更を保存」ボタンを押すことで、直接コードを書かなくても実行してくれるんです。

かんたんということ以上に、コードを直接テーマに書くことの弊害が防げます。リンク記事から、Toroさんの心の叫びが聞こえてきますね!!

ただし、デフォルト(http://sample.com/?p=123)以外のパーマリンク構造になってないといけないっぽいですね。

方法2. コードを書いて実行する

上の方法に気がつく前にこっちでやってしまったので、一応そのことも書き残しておきます。でも上記の方法のほうがおすすめですよ?

こちらを参考にさせていただいて、flush_rules()を手動で実行してみることに。

Codexはこちら。黄枠や赤枠に「警告」と書いてあったりして、気軽に使うにはアレな雰囲気をビシビシ感じますねw

上記コードはCodexからの引用です。これを functions.php や header.php など任意のファイルに書いてページを表示させれば実行されます。

注意として、1回だけ実行して消すこと。くれぐれも、書きっぱなしにしてページを読み込むたびに実行されることのないよう気をつけてください。と、Codexにも書かれています。

また、.htaccess をカスタマイズされている方は、flush_rules()のカッコ内を false にするのをお忘れなく。パラメータが空だと true となり、.htaccess が再生成されてしまうそうです。

結果

やってみたら、見事404だったページが正常に表示されました! ヽ(゚∀゚)ノ

おすすめのプラグイン

私はまだそこまでの領域に行っていないんですが、カスタム投稿タイプにカテゴリ的なもの(カスタムタクソノミー)を設定すると、パーマリンクでハマることが多いのだとか。そんな問題にお悩みの方におすすめなのがこちら。

開発者は我らがWB長野のToro_Unitさんなのです! 人気のプラグインですよー!

  • このエントリーをはてなブックマークに追加
  • follow us in feedly 651
  • RSSを登録

公開日:2017/05/09


コメントを残す




*印は必須項目です。コメントは承認制ですので、反映までしばらくお待ち下さい。(稀にですがスパムの誤判定にて届かないこともあるようですので、必要な際はお問い合わせからお願い致します。)


back to top