# Функция GET_ATTACHED_FILE() в WordPress
Функция get_attached_file() используется для получения пути к файлу, который прикреплён к записи, на основе ID этого вложения.
## Описание функции
По умолчанию путь к файлу будет обработан через фильтр get_attached_file. Если передать true в аргументе $unfiltered, результат вернётся без фильтрации.
Функция находит значение метаданных _wp_attached_file для конкретного вложения. Это удобно, так как вам не нужно самостоятельно искать название метаданных, и можно использовать механизм фильтрации для изменения имени файла.
**Использует:**
- get_post_meta()
**Используется в:**
- wp_maybe_generate_attachment_metadata()
- wp_get_original_image_path()
### Время выполнения
- 1 раз — 0.000594 секунд (медленно)
- 50000 раз — 0.41 секунд (очень быстро)
**Тестирование:** PHP 7.0.8, WordPress 4.6
## Хуки функции
- get_attached_file
## Возвращаемое значение
Функция возвращает строку с путем к файлу, если файл прикреплён. Если нет, возвращается false.
## Использован��е
```php
get_attached_file( $attachment_id, $unfiltered );
Аргументы
$attachment_id(int) (обязательный) — ID вложения.$unfiltered(true|false) — Нужно ли пропустить фильтрget_attached_file. По умолчанию:false.
Примеры использования
Пример 1: Получение полного пути к файлу вложения
$attach_id = 5;
$attached_path = get_attached_file( $attach_id );
//> /home/www/example.com/wp-content/uploads/2014/11/file_name.png
$filename = basename( $attached_path );
//> file_name.png
Код функции
Функция get_attached_file реализована следующим образом:
function get_attached_file( $attachment_id, $unfiltered = false ) {
$file = get_post_meta( $attachment_id, '_wp_attached_file', true );
// Если файл задан относительным путем, добавляем директорию загрузки
if ( $file && ! str_starts_with( $file, '/' ) && ! preg_match( '|^.:|', $file ) ) {
$uploads = wp_get_upload_dir();
if ( false === $uploads['error'] ) {
$file = $uploads['basedir'] . "/$file";
}
}
if ( $unfiltered ) {
return $file;
}
/**
* Фильтрует путь к прикрепленному файлу на основе данного ID.
*
* @since 2.1.0
*
* @param string|false $file Путь к файлу, если файл прикреплен, иначе false.
* @param int $attachment_id ID вложения.
*/
return apply_filters( 'get_attached_file', $file, $attachment_id );
}
Связанные функции
Вот некоторые полезные функции, которые могут вам понадобиться:
get_home_path()— возвращает путь к домашней директории сайта.get_parent_theme_file_path()— возвращает путь к файлам родительской темы.get_temp_dir()— возвращает путь к временной директории.get_template()— возвращает название текущей темы.wp_get_upload_dir()— возвращает пути и URLs для загрузок.
Используйте эти функции в комбинации для более эффективной работы с вложениями и файлами в WordPress.