WordPressで、パーマリンクの設定がうまく反映されずに、思ったのとは別のページが表示されてしまったりする事があります。
特に、通常のダッシュボードのパーマリンク設定以外に、プラグインやテーマファイルでパーマリンクのカスタマイズを行った時に、うまく反映されない現象が起きやすいです。
その場合の、簡単な対処法を紹介します。
パーマリンクの設定は、一度データベースに格納される
具体的な方法の紹介の前に、パーマリンクの設定がページの表示に反映される仕組みをざっと紹介します。
ダッシュボードのパーマリンク設定ページや、プラグイン、テーマファイルで設定されたパーマリンクは、いったんデータベース上のwp_optionテーブルのrewrite_rulesオプションに格納されます。
ページを表示する際には、このrewrite_rulesオプションを参照するため、ダッシュボードやプラグイン、テーマファイルの設定が直接反映されるわけではありません。
これが重要なポイントになります。
ダッシュボードや、プラグイン、テーマファイルのパーマリンク設定はflush_rewrite_rules
という関数の実行で更新されます。
ダッシュボードのパーマリンク設定ページで設定をする場合には、変更を保存ボタンを押した際にリライトルールの更新(flush_rewrite_rules
の実行)が行われます。
いっぽう、テーマファイル上でパーマリンクの設定を行った場合には、自分でリライトルールの更新を行う必要があります。
プラグインの場合は、そのプラグインによってリライトルールの更新を行ってくれるかもしれませんが、中には行わないものもあるようですので、動作がおかしい場合にはリライトルールが更新されているかを疑ってみましょう。
プラグインでリライトルールの更新を行う
思った通りのページが表示されない場合は、とりあえずリライトルールの更新をやってみる、というのも一つの方法です。
Rewrite Rules Inspectorというプラグインは、全てのリライトルールを確認する事ができ、1クリックでflush_rewrite_rules
を行う事ができます。
WordPress › Rewrite Rules Inspector « WordPress Plugins
flush_rewrite_rules
を行うには、ダッシュボードのプラグイン画面右上のFlush Rulesボタンをクリックしてください。
これで、正常に表示されなかったページをもう一度開いてみて、うまく表示されたら完了です。
パーマリンク設定ページでリライトルールの更新を行う
リライトルールの更新は、ダッシュボードのパーマリンク設定ページで設定を保存する際に行われます。
したがって、いったん設定をデフォルトなどにして保存した後、再び設定をやり直す事でリライトルールの更新ができます。
上記のプラグインを使用した方法のほうが明示的であり確実だと思いますが、手っ取り早く行える方法としては選択肢の一つかと思います。
TRACKBACKS