投稿者アーカイブを無効化して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 に移動し、次のコードを記入する。
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に追加してください。
ディスカッション
コメント一覧
初めまして、こんにちは。
ワ-ドプレス初心者で、只今サイト作成中です。こちらの記事を参考にさせて頂き、すべての方法を試してみたのですが上手くいきませんでした。
かろうじて、投稿者は記号のニックネームに変え、投稿日は表示されなくなりましたが、カレンダーのアイコンはそのまま表示されています。投稿者やコメントのアイコンもです。
因みに無料テ-マのAthenaを使っています。フッタ-のDesign by Smartcat+アイコン(リンクURL)もいくつかの方法を試しましたが削除できませんでした。
有料テ-マのAthena Proを買えばこれらの問題はなくなるのでしょうかね。。
初めてのコメントでこんなにたくさん質問を投げかけてしまい本当に申し訳ありません。もしも何か良い方法をお知りでしたらお教え頂けないでしょうか?よろしくお願いいたします。ありがとうございます。
はじめまして。
確認となりますが、各投稿ページの投稿者名や日付のことでしょうか?
このページの内容は投稿者ごとに作成される「投稿者アーカイブ」についてです。
各投稿に表示される投稿者名などはWordPressテーマで制御されています。
そのため、テーマを書き換えなければそれらを隠すことはできません。
返信コメントどうもありがとうございました。
そうです、各投稿ペ-ジのことです。
CSSやphpも少し触ってみたのですが、上手くいきませんでした。
解決できるよう頑張ってみます。
どうもありがとうございました。
Twentytwelve で見事に投稿者アーカイブを消すことができました。 ありがとうございました。
ただ、author.php に記入するほうだと効果がありませんでした。 あと、functions.php のほうの説明で「一番下の「?>」の上に記入する。」とありますが、それが見当たりませんでした。
このプラグインを入れたのですが、TOPページのCSSが、なぜか崩れました。
そしてプラグインをオフにしても、削除しても、それは、直りませんでした。
バックアップしていたテーマに戻したら、直りました。
原因までは、分かりませんが、何かが起きているようです。
functions.phpに記述し、機能しましたので、無事解決しました。
記事内容はありがたいです。
ありがとうございました。
xserverでWordPressを簡単設定して始めたのですが、こちらの記事がとても役に立ちました。
まだまだ勉強中で特に、No_Author_Archiveプラグインは助かりました、ありがとうございます。
(バージョン5.5.3テーマは初期設定されていたTwenty Twentyです)
参考になり助かりました
ただ最新のWPとPHPだとWarning: Undefined array key “” inのエラーが出ますね
issetで分岐させて対処しました