get_attached_file

Получает абсолютный (серверный) путь вложения (прикрепленного файла) по переданному ID вложения.

Путь находится в произвольном поле вложения: _wp_attached_file. Функция просто получает значение этого поля и объединяет его с wp_upload_dir().

✈ 1 раз = 0.000594с = медленно | 50000 раз = 0.41с = очень быстро PHP 7.0.8, WP 4.6
Хуки из функции:
get_attached_file
Возвращает

Строку: серверный путь до прикрепленного файла или false если не удалось получить путь.

Использование

get_attached_file( $attachment_id, $unfiltered );
$attachment_id(число) (обязательный)
ID вложения, путь до которого нужно получить.
$unfiltered(логический)
По умолчанию полученный путь прогоняется через фильтр get_attached_file, но если указать в этом параметре true, то путь не будет фильтроваться.
По умолчанию: false

Примеры

#1 Получим полный путь до файла вложения

<?php
function get_attached_file( $attachment_id, $unfiltered = false ) {
	$file = get_post_meta( $attachment_id, '_wp_attached_file', true );

	// If the file is relative, prepend upload dir.
	if ( $file && 0 !== strpos( $file, '/' ) && ! preg_match( '|^.:\|', $file ) && ( ( $uploads = wp_get_upload_dir() ) && false === $uploads['error'] ) ) {
		$file = $uploads['basedir'] . "/$file";
	}

	if ( $unfiltered ) {
		return $file;
	}

	/**
	 * Filters the attached file based on the given ID.
	 *
	 * @since 2.1.0
	 *
	 * @param string $file          Path to attached file.
	 * @param int    $attachment_id Attachment ID.
	 */
	return apply_filters( 'get_attached_file', $file, $attachment_id );
}

Комментарии:


Оставить комментарий

Your email address will not be published. Required fields are marked *