add_rewrite_ruleが反映されない
埼玉県所沢市でホームページ制作や輸入品販売などを行っているRishunTradingです。
今回は、Wordpressの”add_rewrite_rule”が反映されない時に確認すべき事について記載させて頂きますが、その前に簡単に、”add_rewrite_rule”の考えられる用途について記載させて頂きます。
(正確に言うと、反映されない時に確認すべき事だけ記載しても、すぐ終わってしまうため。)
1.”add_rewrite_rule”を使うシーン
以前、Wordpressの”add_rewirte_rule”を使う事で、URLのディレクトリ構成に意味を持った構成を構築できる事をお話させて頂きました。
WordPressのカスタム投稿タイプ、タクソノミー、ターム、リライトルールを理解しよう!
例えば、ロケーション(地域)毎に、実績の一覧を表示するような場合では、”add_rewirte_rule”を駆使する事で、意味を持ったディレクトリ構成でURLを生成する事ができました。
例)当サイトのエリア毎の実績の例
1)すべてのロケーション(全地域)
https://rishuntrading.co.jp/website_business/area/
2)「関東エリア」の実績例の一覧
https://rishuntrading.co.jp/website_business/area/kanto-area/
3)「関東エリア」→「埼玉県」の実績例の一覧
https://rishuntrading.co.jp/website_business/area/kanto-area/saitama-ken/
4)実際の概要記事の一覧
https://rishuntrading.co.jp/website_business/area/kanto-area/saitama-ken/case039/
実施しようと思えば、さらに深く/saitama-ken/の下に、/tokorozawa-shi/(所沢市)を入れるような事もできます。
これを実現しているのは、該当のURLが来た時に、URL名をリライトするルールを設定しているためです。この宣言を、”add_rewirte_rule”で行っています。
2.実際の例
1 2 3 4 5 6 7 8 9 10 | //parent ex)kanto-area add_rewrite_rule('website_business/area/([^/]+)/?$', 'index.php?tax_area=$matches[1]', 'top'); add_rewrite_rule('website_business/area/([^/]+)/page/([0-9]+)/?$', 'index.php?tax_area=$matches[1]&paged=$matches[2]', 'top'); //child ex)chiba-ken add_rewrite_rule('website_business/area/([^/]+)/([^/]+)/?$', 'index.php?tax_area=$matches[2]', 'top'); add_rewrite_rule('website_business/area/([^/]+)/([^/]+)/page/([0-9]+)/?$', 'index.php?tax_area=$matches[2]&paged=$matches[3]', 'top'); //child single ex)usecase001 add_rewrite_rule('website_business/area/([^/]+)/([^/]+)/([^/]+)/?$', 'index.php?usecase=$matches[3]', 'top'); /* casestudy */ add_rewrite_rule('website_business/casestudy/([^/]+)/?$', 'index.php?usecase=$matches[1]', 'top'); |
WordPressでは、内部では、ドメインルートの”index.php”のパラメータで各ページを表示しています。これにリライトルールがある事で、そのルールに合致したURLが来ると、そのURLから値を取得し、index.phpにパラメータを渡す事で該当ページを表示しているわけです。
そして、”add_rewirte_rule”によって、Wordpressへリライトルールを追加する事ができます。
細かい設定は、Wordpressの公式リファレンスに譲りますが、実際の宣言を見ればわかる通り「正規表現」で宣言し、その値を、 $matches[]を使って、index.phpのパラメータへ渡している事が分かると思います。
これらは、SEOの観点からも非常に有効な方法です。
3.”add_rewrite_rule”が反映されない時に確認すべき事
いよいよ本題ですが、私はよくやってしまうのですが、”add_rewrite_rule”は、宣言しただけでは反映されません。パーマリンクを更新しないと反映されません。パーマリンクを新しくする必要があるため、当然といえば当然なのですが。よく忘れます。
“add_rewrite_rule”が反映されないと思ったら、まずは、パーマリンクを更新して見て下さい。それでも反映されていない場合には、宣言が間違っていると思いますので、宣言方法を確認して見て下さい。
なお、リライトルールを確認するのであれば、プラグイン「Rewrite Rule Inspector」が便利です。
皆さまのお役に立てれば幸いです。
WEB DESIGN全てお任せ!ホームページ制作
RishunTradingでは、日本にはないコンセプトや高いデザイン性をもったヨーロッパ製品の輸入販売、及び、Webサイト制作事業などをおこなっております。
「全てお任せ!ホームページ制作」は、ドメイン取得からサーバー設定、レスポンシブルデザイン(スマホ、タブレット対応)、SEO対策がすべて含まれたお得なホームページを制作するサービス商品です。
運用開始後に「Webサイト運用管理サービス(保守)」と組み合わせて購入しますと、メンテナンス、更新も含めてすべて弊社で実施しますので、お客様は安心して本業に集中する事ができます。
しかもなんと、「全てお任せ!ホームページ制作」は、¥100,000!で提供しております。
本業が忙しい中小企業様に大変ご好評を頂いている商品です。
独自ドメイン取得
サーバー開設&設定
レイアウト設計
レスポンシブルデザイン
(*1)検索エンジン最適化
(SEO対策)場所Maps
お問い合わせフォーム
SSL化
各種SNS連携
運用マニュアル