制作記事 Web制作アプリケーションWordPress投稿者のログイン名をURLに表示させない → リダイレクト

投稿者のログイン名をURLに表示させない → リダイレクト

たとえば、あるユーザー情報が下記の場合。

ログイン名「sample」
パスワード「abcde」
ユーザーID 「123」
表示名「たけたけ」

WordPressのデフォルトの仕様では、「?author=123」 とアクセスすると「/author/sample/」へリダイレクトされる。
え?ログイン名がURLに表示されてる…。これは想定外すぎる。
ユーザーから見えるコードの中からは、ログインしている本人以外は、ログイン名が表示されないよう徹底したのに、これは盲点。

「?author=123」と「/author/sample/」はエラー扱いにする

というわけで、「?author=123」 や「/author/sample/」のようにアクセスされた場合は、404テンプレートが適用されるようにリダイレクト処理を functions.php に追記する。
functions.php を修正する場合は、修正前に必ずバックアップを取って、何かあった場合にすぐ差し戻せるようにしましょう。

function disable_author_archive() {
  if ($_GET['author'] || preg_match('#/author/.+#', $_SERVER['REQUEST_URI'])) {
    wp_redirect(home_url().'/404/');
    exit;
  }
}
add_action('init', 'disable_author_archive');

下記のサイトを参考にさせてもらったが、下記ページでは他の対応方法なども紹介されているので、気になる方は合わせてチェックしてみてください。