投稿者アーカイブを無効化してWordPressのユーザ名を隠す方法
CMS「WordPress」で自動生成される投稿者アーカイブを無効化してWordPressのユーザ名を隠すことに関する内容
投稿者アーカイブって何?
WordPress で自動生成される投稿者ごとの投稿をまとめたページです。
初期状態の WordPress では投稿者ごとに投稿者アーカイブが作成されます。そのため、 WordPress のユーザー名が閲覧者にバレてしまいます。
投稿者アーカイブの見る方法
次のURLにアクセスすると、自動的に投稿者名のアドレスにリダイレクトされます。
サイトURL/?author=1
なぜ無効化する必要があるの?
ユーザー名が閲覧者にばれても一見何の問題もないように思えます。
しかし、ユーザー名を知られると「ブルートフォースアタック(総当たり攻撃)」の成功率が上昇する危険性があります。力任せ攻撃とも呼ばれるブルートフォースアタックでは理論的にありうるパターン全てを入力する攻撃手法ですが、ユーザ名を知られることでパターンが絞られるためです。
無効化する方法の一覧
投稿者アーカイブは次のいずれかの方法で無効化することができます。
- ニックネームを使用する方法
- author.phpを使用する方法
- functions.phpを使用する方法
- プラグインを使用する方法
ただ、1.の「ニックネームを使用する方法」は無効化ではなく、表示ユーザ名を変更する方法となっています。
ニックネームを使用する方法
WordPressのユーザ設定にある「ニックネーム」を利用することで、表示を「ユーザ名」から「ニックネーム」にする方法です。
ただし、URLがユーザ名そのままのためプラグイン「Edit Author Slug」を併用する必要があります。
管理画面 → ユーザー → あなたのプロフィール に移動し、該当部分を変更する。
author.phpを使用する方法
投稿者に関するテンプレート「author.php」を編集し、投稿者アーカイブにアクセスさせないようにすることで無効化する方法です。テンプレートによってauthor.phpがない場合があります。
管理画面 → 外観 → テーマ編集 → author.php に移動し、次のコードを記入する。
add_filter( 'author_rewrite_rules', '__return_empty_array' );
functions.phpを使用する方法
functions.phpを利用し、author.phpとほぼ同じことを実行します。
心配な方はプラグインの使用をおすすめします。
管理画面 → 外観 → テーマ編集 → functions.php に移動し、次のコードを一番下の「?>」の上に記入する。
add_filter( 'author_rewrite_rules', '__return_empty_array' );
function disable_author_archive() {
if( $_GET['author'] || preg_match('#/author/.+#', $_SERVER['REQUEST_URI']) ){
wp_redirect( home_url( '/404.php' ) );
exit;
}
}
add_action('init', 'disable_author_archive');
プラグインを使用する方法
functions.phpの内容をプラグイン化したものです。次のリンクからプラグインをダウンロードして、あなたのWordpressに追加してください。