[WordPress General] rewrite_rules_array を利用してリライトルールを追加する方法
`add_rewrite_rule` ではなく `rewrite_rules_array` を利用する方法を知ったので memo.
> * [関数リファレンス/WP Rewrite – WordPress Codex 日本語版](https://wpdocs.osdn.jp/%E9%96%A2%E6%95%B0%E3%83%AA%E3%83%95%E3%82%A1%E3%83%AC%E3%83%B3%E3%82%B9/WP_Rewrite)
> * [wordpressでカスタム投稿タイプとタクソノミーを作った時のURL設計 | blog](https://blog.skylarking.me/2017/12/24/wordpress-custom-post-type-and-taxonomies/)
先のルールが優先するので、既存ルール `$rules` の前に新しいルールをセットします。
下記では `/foo/[slug]` の URL にアクセスすると `/[slug]` の内容が表示されるようなります。
“`php:functions.php
function myUrlRewrite( $rules ) {
$newRules = array();
$newRules[‘^foo/([^/]+)/?$’] = ‘index.php?pagename=$matches[1]’;
return $newRules + $rules;
}
add_filter( ‘rewrite_rules_array’, ‘myUrlRewrite’ );
“`
有効化するためには「ダッシュボード>設定>パーマリンク設定」で一度保存します。
ビューテンプレートで `$wp_rewrite` をダンプしたりすると、ルールが追加されていることを確認できます。
“`php
‘;
var_dump( $wp_rewrite );
echo ‘
‘;
?>
“`
## 補遺
> * [WordPressにカスタムなページ | Firegoby](https://firegoby.jp/archives/2155)
> * [WordPressのプラグインで任意のURLのページを追加する | Firegoby](https://firegoby.jp/archives/1213)
`add_rewrite_rule`
> * [Rewrite API/add rewrite rule – WordPress Codex 日本語版](https://wpdocs.osdn.jp/Rewrite_API/add_rewrite_rule)
> * [[WordPress] Rewrite API を利用してカテゴリ毎の年次アーカイブのインデックスページを作成する | deadwood](https://www.d-wood.com/blog/2017/12/04_9370.html)