パラメーターがダメ!?意図しない404ページが発生
あるサイトがどこからやってきたか知るためにサイトURLにパラメータを付けてリンクをつけることがあります。
例えば以下の様な場合です。
<a href="アクセス解析を仕込んでいるサイトのURL/?foo=bar" />アクセス解析を仕込んでいるサイト</a>
この場合だと「?foo=bar」の部分がパラメーターということになりますが、WordPressで制作したサイトでパラメーターの内容によってはうまく動かないことがわかりました。
どういった状況でうまく動かないかまたそれはどうしてか紹介したいと思います。
どういう状況でなったのか
- 「表示設定」で「ホームページの表示」を「固定ぺージ(以下で選択)」にしている。
- パラメーターのキーに「page」を使用している。
- トップページを表示してほしいのに404(ここには何もありません等)ページが表示されてしまう。
なぜおかしくなったのか
- 「page」はWordPressの予約語の為、不具合が発生する。
- 予約語はほかにあり意図しない挙動をするものもある。
- 「表示設定」の「ホームページの表示」を固定ページにしていない場合はpageは使っても大丈夫だった。ただし、「post」や「p」では同様におかしくなってしまう。
解決策
- パラメーターのキーを予約語ではないものに変更する。
- 実務でクライアントからの要求でパラメータが決まっている場合はなんとか変えてもらうようにする。
予防策
- WordPressの予約語があるということを知りまた、そのようなものがあるのでパラメーターなどを指定された場合に予約語に入っていないか確認する。
- WordPressの予約語は次のページで確認できる。[https://codex.wordpress.org/Reserved_Terms]