作成者アーカイブを無効化する

WordPressには投稿を作成した人ごとの投稿一覧を表示する「作成者アーカイブ」(投稿者アーカイブ)という機能が標準で用意されています。複数人で運営するブログの場合は便利ですが、WordPressを活用したホームページを作成していて作成者アーカイブが不要なケースもあります。

作成者アーカイブが不要な場合に作成者アーカイブを無効化(404ページを表示)するには、functions.phpに下記のように記載します。(WordPressのサイトアドレスURL/?author=1 などでアクセスされた際にURLにユーザー名が表示される機能も無効にします)

補足

  • WordPressで作成者(投稿者)アーカイブを作らない方法(リライトルールの勉強) – Gatespace's Blog」さんなどで紹介されている 「add_filter( 'author_rewrite_rules', '__return_empty_array'); をfunctions.phpに記載し、『設定』 > 『パーマリンク設定』で『更新』ボタンを押す」、という方法でも無効にすることができます。
    この方法の場合は WordPressのサイトアドレスURL/?author=1 などでアクセスすると、リダイレクトによりURLにユーザー名が表示されてから「ページが見つかりません」という表示になります。
  • 不要なページを無効化する (404)」にあるようなコードでも作成者アーカイブを無効化できます。
    この方法もリダイレクトは動作しますが、「template_redirect」というアクションは管理画面では動作しないため、 is_admin() を記載しなくても済みます。
  • 技術的な補足: リダイレクト先のURLは redirect_canonical() により算出されたURLが使用され、作成者アーカイブの場合は get_author_posts_url() 内の get_author_permastruct() を元にURLが決定されていますが、set_404() しておくと作成者アーカイブのリダイレクトがされなくなります。(WordPress 4.6時点)
    • get_author_permastruct() は「$this->front . $this->author_base . '/%author%'」(通常「WordPressサイトアドレスURL/author/ユーザー名」)を返します。

更新履歴

コメント

内容の誤りなどがありましたら下記からご連絡をお願いします。頂いたコメントは基本的に公開されることはありません(必要な場合は個別に返信させて頂きます)。

CAPTCHA