テーマの functions.php に以下を追加
/** * サイトマップからユーザを外す * https://make.wordpress.org/core/2020/07/22/new-xml-sitemaps-functionality-in-wordpress-5-5/ */ function remove_user_archive_from_sitemap ( $provider, $name ) { if ( 'users' === $name ) { return false; } return $provider; } add_filter( 'wp_sitemaps_add_provider', 'remove_user_archive_from_sitemap', 10, 2 );
これでOKです!
プラグイン不要でXMLサイトマップを自動生成
WordPress はそのサイトの(ほぼ)全てのページを網羅する XML サイトマップを自動で生成します。この機能はWordPress パージョン 5.5 で追加されました。
すでにWPサイトをお持ちの方は(そして5.5以上なら)、公開のアドレス(トップページ)の最後に「/wp-sitemap.xml」を付けると確認できるはずです。
詳しい解説は下記にあります。
XMLサイトマップにリストされる内容は?
ちなみにこのサイトのXMLサイトマップはこちらです。(ユーザ別アーカイブは外してあります)
https://learning.ccc-labo.net/wp-sitemap.xml
上記のXMLサイトマップは、階層構造になっていて、「/wp-sitemap.xml」にさらにXMLサイトマップのURLがリストされている、という構造になっています。XMLサイトマップにリストされるのは以下のようなページです。
- 投稿の全てのページ
- 固定ページの全てのページ
- カスタム投稿があればその全てのページ(※)
- カテゴリやタグなどのアーカイブページ
- カスタムタクソノミーのアーカイブページ(※)
- Author のアーカイブページ
※公開クエリがfalseになっている場合はそのカスタム投稿のページは掲載されません
カスタム投稿のアーカイブは、XMLサイトマップに入らないので、追加したい場合は、XMLサイトマップをカスタマイズする必要があると思います。
さて、XMLサイトマップに列挙される中に、「Author のアーカイブページ」があります。これは、そのサイトで「記事を書くユーザ別のアーカイブ」のことです。この「ユーザ」を知られたくない場合があります。「ユーザ別のアーカイブ」では、うっかり、アカウント名がURLに利用されますので、セキュリティ上、ユーザのアカウントを見られたくない、知られたくないと言う場合は、多いと思います。
「ユーザ別のアーカイブはサイトマップから外したい!!」
そんな時は、冒頭に紹介したコードをテーマの functions.php に書けばOKです。
ちなみに、自動のXMLサイトマップは、設定>表示設定の「検索エンジンがサイトをインデックスしないようにする」にチェックが入っていると表示されません(404エラー扱いになる)ので、お気をつけください(こないだうっかりひっかかった…)。