
目次
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()
を使ってトップや親投稿にリダイレクトする方法が有効です。 - ブログなどで写真中心の投稿を行う際には、添付ファイルページを独自デザインにしてフォトギャラリーのように仕立てる活用法もあります。