説明
get_attached_file() は、添付ファイルのサーバー上のファイルパスを返す関数です。
基本構文
get_attached_file( int $attachment_id, bool $unfiltered = false ): string|false
引数
$attachment_id:添付ファイルのID$unfiltered:フィルターを通さないか
戻り値
ファイルの絶対パス。
使い方(サンプル)
$path = get_attached_file( 45 );
注意点
- URLではなくパスを返します。ファイル操作に使います。
実務での使いどころ
- メディアの、サーバー上のファイルのパスを取得するとき(ファイルの読み込みや、削除)。
よくあるミスと対処
- URLが欲しいのに、これを使っている。この関数が返すのは、サーバー上のパス。URLには
wp_get_attachment_url()を使う。 - 存在しないIDでは
falseが返る。確認せずに使う。
NG例
echo '<img src="' . get_attached_file( $id ) . '">'; // パスなので、画像が表示されない
OK例
$path = get_attached_file( $id );
if ( $path && file_exists( $path ) ) {
$size = filesize( $path );
}
使い分け早見表
| やりたいこと | 使うもの |
|---|---|
| ファイルのパス(サーバー上) | get_attached_file() |
| ファイルのURL | wp_get_attachment_url() |
| URLから、メディアのIDを取得 | attachment_url_to_postid() |
関連項目
wp_get_attachment_url()、wp_upload_dir()
公式リファレンス:get_attached_file() | Function | WordPress Developer Resources

コメント