is_attachment()

is_attachment()
目次

is_attachment()とは?

is_attachment() は、WordPress の条件分岐タグの一つで、現在表示しているページが「**添付ファイルページ(Attachment Page)」かどうかを判定するための関数です。この関数を使用することで、テンプレートやテーマ内で添付ファイルページに特化した処理を行うことが可能になります。

is_attachment()の基本構文

is_attachment( int|string|array $attachment = '' )

is_attachment()のパラメータ(任意):

  • $attachment(int|string|array):判定したい添付ファイルの ID、スラッグ、またはそれらの配列。省略可能。

is_attachment()の戻り値:

  • true:現在のページが添付ファイルページの場合。
  • false:それ以外のページ。

添付ファイルページとは?

WordPress では、画像・PDF・動画などのメディアを投稿やページに挿入すると、自動的にそれらの「添付ファイル(attachment)」に対する単独ページ(=アタッチメントページ)が作成されます。
このページは投稿と同じように個別の URL を持ち、カスタムテンプレートを適用することもできます。

例:

https://example.com/2025/07/sample-image/

この URL が sample-image.jpg という画像の添付ファイルページです。

is_attachment()の使用例

例1:添付ファイルページかどうかの判定

if ( is_attachment() ) {
    echo 'これは添付ファイルページです。';
}

例2:特定の添付ファイル(ID:123)のページかどうか

if ( is_attachment(123) ) {
    echo 'これは添付ファイル ID 123 のページです。';
}

例3:スラッグによる判定

if ( is_attachment('sample-image') ) {
    echo 'これは sample-image というスラッグの添付ファイルページです。';
}

is_attachment()のよく使われる場面

1. 添付ファイルのページで別デザインを適用したいとき

if ( is_attachment() ) {
    get_template_part( 'attachment', get_post_mime_type() );
}

→ これにより MIME タイプ(画像、PDFなど)に応じたテンプレートが読み込まれる。

2. 添付ファイルページでリダイレクト処理を行いたい

if ( is_attachment() ) {
    wp_redirect( home_url() );
    exit;
}

→ 添付ファイルページが不要なサイト構成で、トップページなどへリダイレクトする目的。

is_attachment()と関連する関数

関数名説明
wp_get_attachment_url()添付ファイルのURLを取得
wp_get_attachment_image()添付ファイル(画像)のHTMLを出力
wp_get_attachment_metadata()添付ファイルのメタデータ取得
is_single()投稿ページの判定。is_attachment()is_single() を通過する。
is_singular('attachment')is_attachment() と同じ判定をする(内部的には is_singular() を使っている)

添付ファイルページ専用テンプレート

WordPress テンプレート階層において、添付ファイルページには以下のテンプレートが適用されます:

1. attachment-{MIMEタイプ}.php
2. attachment.php
3. single-attachment.php
4. single.php
5. singular.php
6. index.php

たとえば画像なら:

attachment-image/jpeg.php → attachment.php → single.php … の順

is_attachment()の注意点

  • is_attachment() は通常、フロントエンドで添付ファイル単体ページが表示されているときにしか true を返しません。
  • 管理画面や REST API などからのアクセス時には無効。
  • メディアライブラリの一覧画面や画像を「添付ファイル」としてリンクせず直接挿入している場合には該当しません。

is_attachment()のまとめ

項目内容
関数名is_attachment()
用途添付ファイルページの判定
パラメータ添付ファイルの ID/スラッグ(任意)
戻り値true または false
利用例添付ファイルページにテンプレート分岐、リダイレクトなどを実装
関連関数is_singular('attachment'), wp_get_attachment_url() など
  • 添付ファイルページを SEO 対策の観点から無効化したい場合、functions.php にて wp_redirect() を使ってトップや親投稿にリダイレクトする方法が有効です。
  • ブログなどで写真中心の投稿を行う際には、添付ファイルページを独自デザインにしてフォトギャラリーのように仕立てる活用法もあります。
よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

初めてホームページを作成したのは1996年。
2000年よりフリーランスで主に中小企業、学校、各種公的団体、個人事業主のWordPressを活用したホームページ制作を行っています。WordPressテーマはそれぞれのクライアントに合わせて作成しています。
WordPressを活用したサイト運営のための情報発信をしていきます。

目次