2018.09.10

WordPress

wordpressで自動生成される画像ページで困ったことと対処法

古いカメラと写真のイメージ

古いwordpressは画像ページというものを画像投稿の際に生成しています。これは特定のphpテンプレートに投稿した画像が一枚ぽつんとあるだけのページで、seo的に意味が大変薄いうえに、ページのスラッグを画像のファイル名で専有するので、サイトの運営上不都合が多いです。
最近ではwordpressの初期設定でこのページは生成しないがデフォルトになっているようなのですが、古いwordpressのリニューアル調整を依頼された際にこの問題に直面したので、今回はその対処法をお伝えします。

画像ページとは

画像ページは生成する設定になっている場合、wordpressに画像を投稿した際に自動的に生成されています。画像ページへのテンプレート割り当ては以下のようになっています。

  1. MIME_TYPE.php(image.php、video.php、audio.php、application.php、その他 MIME type の最初の部分のファイル名)
  2. attachment.php
  3. single.php(記事ページのデフォルト)
  4. index.php

ページのスラッグは画像のファイル名で自動生成されます。これは固定ページや投稿ページのスラッグと競合します。

画像ページを生成しない設定に

画像ページは生成しない設定にすることができます。
option.phpimage_default_link_typeをnoneに設定することで、画像ページの生成を行わない設定にできます。

画像のファイル名をリネーム

既に生成された画像ページがありそれが新しいページとスラッグを競合しているとき、原始的ですがファイル名をリネームすることでこれに対処できます。画像のリンク元ページのhtmlも記述を直すことに注意しましょう。

テンプレートでリダイレクト

既に画像ページが大量に生成されてしまっているときは、テンプレートでリダイレクトを行う方法で対処できます。
attachment.phpに対して以下のコードを記述します。themeにattachment.phpがない場合は追加します。

<?php 
// 添付元(投稿、ページなど)のある画像ページの場合、添付元にリダイレクト
if ( $post->post_parent ) {
	wp_redirect( get_permalink( $post->post_parent ), 301 );
}
// 添付元の不明な画像ページの場合、トップページにリダイレクト
else {
	wp_redirect( home_url(), 302 );
}
 ?>

まとめ

最近ではデフォルトでオフになっているがゆえに、あまり知られていない画像ページへの対処法を紹介しました。検索ページに画像ページが出てきてしまった際などのお役に立てばと思います。

SHARE

この記事の筆者

Web&Soundクリエイター 田村 培修

Web&Soundクリエイター 田村 培修

楽器とパソコンのキーボードを使い分ける当社のマルチクリエイター。e-sportsに興味津々であれこれ情報を収集中。

WEBSITE DESIGN REQUEST

ホームページ制作・リニューアルの
ご相談はお気軽に

TEL 06-6537-9941 平日 9:00〜19:00

〒550-0012 大阪府大阪市西区立売堀2-5−41

ホームページ制作を相談する