WordPressでユーザー名が流出する3か所への対策方法

@niketcha

WordPressのログインに使うユーザー名。できれば人目に触れさせたくないところです。

初期状態のニックネームや投稿者アーカイブからバレてしまうというケースは結構有名ですが、それ以外にもバレてしまう場所があります。それはコメント欄のクラス名。

そこで今回はこれら3か所からユーザー名が流出するのを防ぐ方法を紹介します。

コメントのクラス名

コメント欄のHTMLソースを確認すると、「comment-author-ユーザー名」という形でユーザー名が出力されていることがわかります。

このクラスを削除するには下記のコードをfunction.phpにそのままコピペするだけでOKです。

//コメント欄のユーザー名を削除
function remove_comment_author_class( $classes ) {
	foreach ( $classes as $key => $class ) {
		if ( strpos( $class, 'comment-author-' )!== false ) {
			unset( $classes[$key] );
		}
	}
	return $classes;
}
add_filter( 'comment_class', 'remove_comment_author_class', 10, 1 );

strpos関数は文字列を検索するための関数です。strstrやpreg_matchなど、同種の関数の中で一番処理が速いそうです。

unset関数は指定した変数を破棄するための関数です。

投稿者のコメントを識別したいとき

ユーザー名は消したいけど投稿者のコメントは別スタイルを指定したいというときは下記のクラスが使えます。

クラス名出力される条件
byuser登録済みユーザー
bypostauthor投稿の作成者

ニックネーム

WordPressのニックネームはデフォルトではユーザー名と同じになっています。テーマによっては記事の中にニックネームが表示されるようになっているため、ユーザー名と同じにしているとユーザー名がバレてしまいます。

ニックネームを変更するには管理画面のユーザー一覧にアクセスします。

ユーザー名と別の名前をニックネームに設定し、ブログ上の表示名をニックネームに変えておきましょう。

Sponsored Link

投稿者アーカイブ

投稿者アーカイブへのリンクを表示させていない場合でも、http://ドメイン/?author=1を入力することでアクセスできます。

ユーザーの追加や削除を何度か行っている場合はauthor=1をauthor=2やauthor=3…と変えていくことで辿り着けます。

投稿者アーカイブが表示されたとき、URLはhttp://ドメイン/author/ユーザー名/に変更されます。ここからユーザー名がバレてしまいます。

対策A:404を返す

function.phpに下記のコードを書くことで、投稿者アーカイブページにアクセスされたら404が表示されるようになります。
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');

対策B:プラグインでURLを変更する

Edit Author Slugなどのプラグインを使えば投稿者アーカイブのURLを変えることができます。

複数ユーザーで運用していて投稿者アーカイブも必要という場合はこちらの方法になるかと思いますが、プラグインを常駐させておかなければいけないみたいです。

既にユーザー名がバレてしまった場合は

既にユーザー名が流出している可能性がある場合はユーザー名の変更をしておくと安心です。

こちらの記事にユーザー名の変更方法を記載していますので参考にしてみてください。投稿などそのまま引き継いでユーザー名を変更することができます。

-ウェブサイト構築, word press

コメントを残す

お名前もメールも入力は任意です。お気軽に指摘や質問などしていただけると嬉しいです。

Gravatarに登録すると、お好きな画像をアバターに設定できます。

Copyright© ニケッチャニッキ , 2017-2019 All Rights Reserved.