get_attached_file() の使い方|説明・引数・注意点

説明

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

コメント

タイトルとURLをコピーしました