WordPress 5.5でXMLサイトマップの自動生成が標準機能として実装されました。
しかしこの自動生成サイトマップ。
出力するURLを細かく制御できないわ、更新日付は出力しないわ。
現状ではプラグインに任せた方がいいので無効化します。
なお、KUSANAGIとしていますが、当然Nginx全般で使えます。
ファイル名は適当に読み替えてください。
Nginxで標準XMLサイトマップをリダイレクトする方法
方法は2つあります。
- Nginxの設定ファイルにリダイレクトを記述する方法。
- functions.phpに生成機能を無効化するコードを記述する方法。
どちらも簡単ですし、どちらでもいいです。
ただ後者だと、https://ドメイン名/wp-sitemap.xmlにアクセスしたとき404を返します。

なんとなくスマートじゃない…
というわけで、私は前者を採っています。
Nginxの設定ファイルにリダイレクトを記述する方法
プラグインが出力するXMLのURLを「~/sitemap.xml」とします。
etc/nginx/conf.d/(プロファイル名)_ssl.confに次の記述をします。
rewrite ^/wp-sitemap.xml(.*)$ https://【ドメイン名】/sitemap.xml$1 redirect;
終わったら再起動します。
#kusanagi restart
https://【ドメイン名】/wp-sitemap.xmlにアクセスしてリダイレクトされているか確かめてみてください。
正規表現の参考にした記事はこちらです。

nginxのrewriteを使ったリダイレクト | Skyarch Broadcasting
functions.phpに生成機能を無効化するコードを記述する方法
子テーマのfunctions.phpに次のコードを書き込みます。
add_filter( 'wp_sitemaps_enabled', '__return_false' );
https://【ドメイン名】/wp-sitemap.xmlにアクセスして404が返ってくるか確かめてください。
まとめ

WordPressがまともに対応してくれたら、プラグイン1つ減らせるんですけどね
それまではリダイレクトして気長に待ちましょう
コメント