投稿者アーカイブを無効化する方法を修正
この記事を読むのに必要な時間は約 9 分です。
(専門用語などにはポップアップする説明をつけているので時間が長く表示されることがあります。
ツールチップの機能については、こちら)
WordPressを運用するのによく言われるのが投稿者名を表示しない方がいいとかアーカイブを無効化するとか言われます。
セキュリティという意味においてどちらも正解だと思います。
多くの方は、1人でWordPressを運用する方が多いのに正直言って投稿者アーカイブの必要性を感じないことも多いのです。
筆者も子テーマで投稿者アーカイブを無効化していましたが、以前に公開したソースではWordPressでエラーになることもあり、今回エラーにならないソースに切り替えましたのでそのソースを公開します。
投稿者アーカイブって何?
「投稿者アーカイブ(author.php)」とは、 WordPressの記事を投稿したユーザーごとにまとめられているアーカイブページです。
投稿者アーカイブのURLの形式は[サイトのURL/author/ユーザーID]です。
WordPressのユーザー名がモロわかりになってしまいますね。
複数のライターで運営していないのであれば無効にしてもいいほどだと思ってます。
子テーマに追加していたソース
これまで子テーマで使っていたソースは、下記の通りです。
下記のソースだとwp-config.phpでエラー表示するようにするとエラーになっています。
1 2 3 4 5 6 7 8 9 10 11 12 |
/*-------------------------------------------*/ /* 投稿者アーカイブにアクセスカスタマイズ /*-------------------------------------------*/ 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'); |
エラーのまま放置するのはよくないですね
読み進めていただくと修正したソースがあります。
なぜ無効化するのか?
なぜ無効化するのかというとユーザー名がわかってしまうと総当り攻撃される脅威にさらされます。
もちろん、わかっても2段階認証やIPアドレス制御などでブロックすればいいのですが、むやみに公開する必要もないというのが、本音ですね。
無効化といってもアクセスされた時に404ページに誘導するだけのことですが・・・
もちろん、その前にやっておくべきことがあるのです。
上記画像では執筆者となっていますが、ユーザー名がむき出し状態です。
ユーザープロフィールでニックネームに変更します。
また、投稿の中では子テーマにて投稿者を表示させないようにカスタマイズしておきます。
スタイルシートで非表示にする方法もありますが、ソース開くとわかってしまうのでちゃんとカスタマイズした方がいいですね。
テーマによってカスタマイズするファイルは、いろいろですが基本はsingle.phpになります。
修正したソース
修正したソースは、下記の通りです。
1 2 3 4 5 6 7 8 9 10 11 12 |
/*-------------------------------------------*/ /* 投稿者アーカイブにアクセスカスタマイズ /*-------------------------------------------*/ function author_archive_404( $query ) { if ( ! is_admin() && is_author() ) { $query->set_404(); status_header( 404 ); nocache_headers(); } } add_filter( 'parse_query', 'author_archive_404' ); |
上記のようにソースを変更しました。
また、上部にあるコメントアウトは筆者は必ずつけるようにしています。
後で久しぶりに見た時に思い出せるようにとか理由はいろいろありますが・・・
まとめ:ソース組み込みの注意点
さてソースはわかりましたね
ただ、どこにコピペすればいいのかです。
それは
子テーマフォルダ内にあるfunctions.phpにコピペする必要がありますね。
Windowsでファイルを開いたりするとShift-JISなどに文字コードがなる場合もあります。
WordPressでは文字コードがUTF-8が必須になります。
WindowsであればTerapadというテキストエディタがあるといいですね。
メモ帳の場合は、文字コードの設定ができないので使えません。
macOSの場合は、Sublime Textをおすすめしています。
使い方については、Tech ACADEMYさんで紹介されています。
![]() |
くまはちLABのご利用ありがとうございます! |