WordPressでログインID(ユーザー名)を隠す方法

プチ収入

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

WordPressのログインIDがバレる場所は3つあります。これらを隠す方法を紹介します。

コメントのクラス名

コメント欄のHTMLソースを見ると、「comment-author-ユーザー名」という形でユーザー名がバレていることがわかります。ログインIDを隠すには、このクラス名が出力されないようにする必要があります。

ログインIDの入ったクラス名を消すには下記のコードを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関数は指定した変数を破棄するための関数です。

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

ログインIDは隠したいけど投稿者のコメントは別スタイルを指定したいというときは下記のクラスが使えます。

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

ニックネーム

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

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

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

投稿者アーカイブ

投稿者アーカイブへのリンクを表示させていない場合でも、http://ドメイン/?author=1を入力することで投稿者アーカイブへアクセスできます。ユーザーの追加や削除を何度か行っている場合はauthor=1をauthor=2やauthor=3…と変えていくことで辿り着けます。

投稿者アーカイブを表示すると、URLはhttp://ドメイン/author/ユーザー名/に書き換わります。ここからログインIDがバレてしまいます。

対策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を変えることができます。

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

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

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

ユーザー名の変更方法はセキュリティ対策にも!WordPressのユーザー名を変更するに記載していますので参考にしてみてください。投稿などそのまま引き継いでユーザー名を変えることができます。

コメント TwitterやFacebookのアカウントにログインしてコメントできます。