WordPressテーマTCDで出来る画像ページを404エラーにする。

WordPressテーマTCDを使うようになって、はじめて知ったのがWordPressでページを作ると勝手に画像ページが出来るということです。
今まで、使っていたテーマではそのようなページを意識したことがありませんでした。(実は他のテーマでも同じような画像ページが出来ます)

おもしろいと思いつつも困った機能です。
というのも、この画像ページがGoogleでキャッシュされる可能性があるのです。

WordPressには画像ページ

ブログで以下のようなページを作成したとします。
URLは「https://www.slashd.com/blog/wordpress-tcd-unique/」です。

ヘッドに表示される画像はメディアで追加しています。

すると、メディアに追加した画像だけのページが自動的に生成されます。
以下のページができます。
URLは「https://www.slashd.com/blog/wordpress-tcd-unique/img-1280×791/」です。

このページが出来るのはWordPressの標準仕様となっています。

しかし、ユーザーから見ると全く不要なページでしょう。
このページをアクセスさせないよう対策が必要となりました。

attachment.phpのアクセスを404に

画像ページを作る優先度の高いPHPはattachment.phpです。

そこで、attachment.phpにアクセスがあった場合に404ステータスコード(Not Found)を返すようにfunctions.phpに以下を追加します。

// attachmentページへのアクセスは404エラーにする
add_action( 'template_redirect', 'status404' );

function status404() {
  if ( is_attachment() ) {
    global $wp_query;
    $wp_query->set_404();
    status_header(404);
  }
}

これで、先ほどのURL「https://www.slashd.com/wordpress-tcd-unique/img-1280×791/」にアクセスしても404メッセージが表示されるようになります。

万が一、画像ページをGoogleがインデックスしても404エラーになりますので、問題ありません。

by T.Y.