WordPressで投稿者アーカイブを無効にする3つの方法

WordPressは非常に柔軟なCMS(コンテンツマネジメントシステム)であり、多くの設定やカスタマイズが可能です。しかし、その柔軟性が時には不必要な機能やページを生む場合もあります。その一例が「投稿者アーカイブ」ページです。このページは特定の投稿者が書いた記事一覧を表示するものですが、一人の投稿者しかいないブログや、セキュリティ上の理由でこの機能を無効にしたい場合もあります。

以下では、投稿者アーカイブを無効にする3つの主な方法を詳しく解説します。

スポンサーリンク

functions.phpにコードを追加

まずは、現在使用しているテーマのfunctions.phpファイルを開きます。このファイルは通常、wp-content/themes/あなたのテーマ名/ディレクトリ内にあります。

functions.phpファイルを開いたら、以下のコードを追加します。

function disable_author_archive() {
  if (is_author()) {
    global $wp_query;
    $wp_query->set_404();
    status_header(404);
  }
}
add_action('template_redirect', 'disable_author_archive');

このコードは、投稿者アーカイブページがリクエストされた場合に、404エラーページにリダイレクトします。

コードを追加したら、必ずファイルを保存して変更を適用させます。

プラグインを使用

セキュリティプラグイン(例:Wordfence, iThemes Securityなど)をWordPressのプラグインセクションからインストールします。

インストールしたプラグインの設定画面にアクセスし、投稿者アーカイブを無効にするオプションを探して有効にします。

設定が完了したら、変更を保存します。

.htaccessを編集

WordPressのルートディレクトリにある.htaccessファイルをテキストエディタで開きます。

以下のコードを.htaccessファイルに追加します。

RewriteEngine On
RewriteBase /
RewriteRule ^author/ / [L,R=301]

コードを追加したら、.htaccessファイルを保存します。

この方法は、WebサーバーがApacheである場合に有効です。Nginxを使用している場合は、Nginxの設定ファイルを編集する必要があります。

よくある質問(FAQ)

Q. WordPressの投稿者アーカイブを無効にする理由と方法を教えてください。
A. 投稿者アーカイブはユーザー名がURLに露出するセキュリティリスクがあります。無効化:add_action("template_redirect", function(){ if(is_author()){ wp_redirect(home_url()); exit; } });で投稿者アーカイブにアクセスされた場合にトップページへリダイレクトします。
Q. 投稿者アーカイブをnoindexにしてインデックスさせないにはどうすればよいですか?
A. Yoast SEO→「検索の外観」→「コンテンツタイプ」→「作成者アーカイブ」でnoindexに設定できます。またはadd_action("wp_head", function(){ if(is_author()){ echo "<meta name='robots' content='noindex'>"; } });を手動で追加します。
Q. 投稿者のURLから推測されるユーザー名をWordPressで変更するにはどうすればよいですか?
A. WordPressのユーザー設定の「ニックネーム」を変更し、「ブログ上の表示名」をニックネームに設定します。URLのスラッグ(ユーザー名)はDBのuser_nicenameを変更する必要があります(管理画面からは直接変更不可)。user-nicenameをユーザー名と異なる値にすることで露出を防ぎます。

まとめ

以上が、WordPressで投稿者アーカイブを無効にする3つの方法です。いずれの方法も、テスト環境で確認した後、本番環境に適用してください。特にコードや設定ファイルを直接編集する場合は、バックアップを取ってから行ってください。