読者です 読者をやめる 読者になる 読者になる

ウェブコンテンツ

ソフトウェア関連のTipsをまとめています。

投稿者アーカイブを無効化してWordPressのユーザ名を隠す方法

WordPress

スポンサーリンク

CMS「WordPress」で自動生成される投稿者アーカイブを無効化してWordPressのユーザ名を隠すことに関する内容

投稿者アーカイブって何?

WordPress で自動生成される投稿者ごとの投稿をまとめたページです。

f:id:birdone:20160814220018j:plain

初期状態の WordPress では投稿者ごとに投稿者アーカイブが作成されます。そのため、 WordPress のユーザー名が閲覧者にバレてしまいます。

投稿者アーカイブの見る方法

次のURLにアクセスすると、自動的に投稿者名のアドレスにリダイレクトされます。


サイトURL/?author=1

なぜ無効化する必要があるの?

ユーザー名が閲覧者にばれても一見何の問題もないように思えます。

しかし、ユーザー名を知られると「ブルートフォースアタック(総当たり攻撃)」の成功率が上昇する危険性があります。力任せ攻撃とも呼ばれるブルートフォースアタックでは理論的にありうるパターン全てを入力する攻撃手法ですが、ユーザ名を知られることでパターンが絞られるためです。

無効化する方法の一覧

投稿者アーカイブは次のいずれかの方法で無効化することができます。

  1. ニックネームを使用する方法
  2. author.phpを使用する方法
  3. functions.phpを使用する方法
  4. プラグインを使用する方法

ただ、1.の「ニックネームを使用する方法」は無効化ではなく、表示ユーザ名を変更する方法となっています。

ニックネームを使用する方法

WordPressのユーザ設定にある「ニックネーム」を利用することで、表示を「ユーザ名」から「ニックネーム」にする方法です。

ただし、URLがユーザ名そのままのためプラグイン「Edit Author Slug」を併用する必要があります。

管理画面 → ユーザー → あなたのプロフィール に移動し、該当部分を変更する。

f:id:birdone:20160814215921j:plain

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に追加してください。

ダウンロード