当サイトは、アフィリエイト広告を利用しています

WordPressで自動生成される投稿者アーカイブを無効化する方法

WordPressでは、記事を投稿した投稿者毎のアーカイブページが自動で作成されます。

試しにWordPressで構築されているサイトで下記URLにアクセスしてみてください。
http://hogehoge.com/?author=1

するとパッとURLが置き換わり(リダイレクト)、次のようなURLになっていませんか?
http://hogehoge.com/author/ユーザー名/

これが投稿者アーカイブページです。

ちなみに「/?author=1」で表示されない場合もあります。
その場合は「/?author=2」「/?author=3」と数字をあげていって試してみてください。
それでも表示されない場合は、そのサイトは対策済みかもしれません🤔

このリダイレクト先のURLにはログイン情報(ユーザー名)が含まれています。投稿者アーカイブ自体不要なのであればセキュリティ的にも無効化しておいた方が良さそうですね。

WordPressで投稿者アーカイブを無効化する方法

functions.phpに下記コードを追記します。

add_filter( 'author_rewrite_rules', '__return_empty_array' );

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

add_action('init', 'disable_author_archive');

記載が完了したら、ダッシュボード>設定>パーマリンク>「変更を保存」をクリックしておきましょう。(設定値は変更しなくて大丈夫です)

※「author_rewrite_rules」というリライトルールを変更するフックを使っていて、これは一度DBに保存しなければ使えない。パーマリンクを更新するとそれが行われるので、一度「変更の保存」が必要です✍️

設定が完了したら再度投稿者アーカイブのurlにアクセスすると、404エラーページが表示される+リダイレクト(=ログイン情報が含まれるURLが表示されない)ようになります◎

ちょっと興味深かった記事があったので紹介

投稿者アーカイブのURLにログイン情報が含まれる〜と書きましたが、じゃあ投稿者アーカイブページ使いたい時ってどうすれば?と思って調べていた時に見つけた記事。

隠さないよりは隠したほうがいいけど、ユーザー名ってバレてる方が一般的じゃない?それよりも基本的な対策をしっかりすべきじゃない?というお話👇

WordPress のユーザー名を隠してもセキュリティ対策に大きくは影響しない

セキュリティ対策って何すればいいですか〜ってよく聞かれるので、ぜひこちら目を通してみてください👀

RELATED POST

関連記事

WordPressで制作したWebサイト全体を非公開にする|プラグイン「Password Protected」の使い方
WordPress有料プラグイン「MemberPress」で会員・非会員に対して、セクション単位で公開範囲を制限する
WordPress|管理画面のカスタム投稿一覧の表示件数をfunctions.phpで変更する