
wp_get_attachment_link()とは?
wp_get_attachment_link()の概要
wp_get_attachment_link()
は、添付ファイル(画像・PDF・動画など)へのリンクHTMLを生成するための WordPress テンプレートタグです。WordPress のメディア機能を活用したギャラリー表示や添付ファイル一覧ページなどで使われます。
この関数を使用することで、添付ファイルに対して簡単にカスタマイズ可能なリンクを生成でき、ギャラリーやメディアライブラリ表示を柔軟に構築できます。
wp_get_attachment_link()の基本構文
wp_get_attachment_link( int $id, string|array $size = 'thumbnail', bool $permalink = false, bool $icon = false, string|false $text = false, array $attr = '' )
wp_get_attachment_link()の引数の解説
引数 | 型 | 説明 |
---|---|---|
$id | int | 添付ファイルの投稿ID。attachment ポストタイプのIDを指定。 |
$size | string / array | 表示する画像サイズ(例:thumbnail , medium , large )。画像以外の場合はアイコンサイズ。 |
$permalink | bool | true にすると添付ファイルページ(attachment page)へのリンク、false ならファイルURLへの直接リンク。 |
$icon | bool | 画像以外の添付ファイルでアイコンを表示するかどうか。 |
$text | string / false | リンクテキスト。false の場合は画像などが出力される。 |
$attr | array | リンク要素の属性(class , title など)を連想配列で指定。 |
wp_get_attachment_link()の実際の使用例
画像のリンクを表示(サムネイル)
echo wp_get_attachment_link( $attachment_id, 'thumbnail', false, false );
このコードは、指定された画像添付ファイルに対する 画像サムネイル付きのリンク を生成します。リンク先はファイルそのものです。
添付ファイルページへのリンク(テキスト表示)
echo wp_get_attachment_link( $attachment_id, 'full', true, false, '添付ファイルを見る' );
この場合は、リンク先が添付ファイル専用ページになり、リンクテキストが「添付ファイルを見る」となります。
PDFファイルにアイコン付きでリンク
echo wp_get_attachment_link( $attachment_id, 'thumbnail', false, true );
PDFやWordなどの非画像ファイルでは、アイコンが表示されます($icon = true
)。
$attr
のカスタマイズ
$attr
には HTML 属性を連想配列で指定できます。
echo wp_get_attachment_link( $attachment_id, 'medium', false, false, false, array(
'class' => 'custom-class',
'title' => 'ファイルを開く'
));
出力されるHTML例:
<a href="https://example.com/wp-content/uploads/xxx.jpg" class="custom-class" title="ファイルを開く">
<img src="..." />
</a>
get_children()
と組み合わせたギャラリー表示例
$attachments = get_children(array(
'post_parent' => get_the_ID(),
'post_type' => 'attachment',
'post_mime_type' => 'image',
'numberposts' => -1,
'post_status' => 'inherit'
));
if ( $attachments ) {
foreach ( $attachments as $attachment ) {
echo wp_get_attachment_link( $attachment->ID, 'thumbnail', false, false );
}
}
このコードは、投稿に添付されたすべての画像ファイルをサムネイル付きリンクとして表示します。WordPressのカスタムギャラリー機能を自作したいときに便利です。
添付ファイルページ(attachment page)とは?
WordPressでは、各添付ファイルに対して「添付ファイルページ」と呼ばれる専用ページが存在します。これは通常の投稿と同じように single-attachment.php
でカスタマイズできます。
wp_get_attachment_link()
の $permalink
を true
にすることで、このページにリンクする形になります。
wp_get_attachment_link()の実際の出力結果(画像)
echo wp_get_attachment_link( 123, 'medium' );
出力されるHTMLの一例:
<a href="https://example.com/wp-content/uploads/2023/01/sample.jpg">
<img width="300" height="200" src="https://example.com/wp-content/uploads/2023/01/sample-300x200.jpg" class="attachment-medium size-medium" alt="" />
</a>
カスタムフィルターの活用
wp_get_attachment_link
にはフィルターフックが用意されており、リンクの出力をカスタマイズできます。
add_filter( 'wp_get_attachment_link', 'my_custom_attachment_link', 10, 6 );
function my_custom_attachment_link( $link, $id, $size, $permalink, $icon, $text ) {
return '<div class="my-attachment">' . $link . '</div>';
}
wp_get_attachment_link()の注意点と補足
- 画像以外のファイルでも使用可能(PDF・Word・Excel など)
- 添付ファイルのIDが必要:
wp_get_attachment_link()
は添付ファイルの投稿IDを要求します。get_posts()
やget_children()
などで取得可能です。 - ギャラリーショートコードとの違い:
wp_get_attachment_link()
はより柔軟なレイアウトやHTML構造を自作したい場合に有効です。
wp_get_attachment_link()のまとめ
項目 | 内容 |
---|---|
関数名 | wp_get_attachment_link() |
主な用途 | 添付ファイルへのリンクHTMLを生成 |
対応ファイル | 画像、PDF、音声、動画、Office文書など |
カスタマイズ | $text , $attr , $permalink , $icon などで柔軟に制御可能 |
出力形式 | HTMLの<a> タグ(中に画像やテキスト) |
フィルター | wp_get_attachment_link でリンク出力を変更できる |
wp_get_attachment_link()
は、WordPress のメディア機能を柔軟に活用するうえで非常に便利な関数です。単純なギャラリー表示からカスタムファイルリストの構築まで幅広く対応でき、使い方次第でデザイン性や利便性を大きく向上させられます。