wp_get_attachment_link()

wp_get_attachment_link()
目次

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()の引数の解説

引数説明
$idint添付ファイルの投稿ID。attachment ポストタイプのIDを指定。
$sizestring / array表示する画像サイズ(例:thumbnail, medium, large)。画像以外の場合はアイコンサイズ。
$permalinkbooltrueにすると添付ファイルページ(attachment page)へのリンク、falseならファイルURLへの直接リンク。
$iconbool画像以外の添付ファイルでアイコンを表示するかどうか。
$textstring / falseリンクテキスト。falseの場合は画像などが出力される。
$attrarrayリンク要素の属性(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()$permalinktrue にすることで、このページにリンクする形になります。

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 のメディア機能を柔軟に活用するうえで非常に便利な関数です。単純なギャラリー表示からカスタムファイルリストの構築まで幅広く対応でき、使い方次第でデザイン性や利便性を大きく向上させられます。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

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

目次