wp_get_attachment_url() WP 2.1
Получает УРЛ вложения по переданному ID вложения. Получает ссылку на файл.
Под вложением подразумевается, любой файл добавленный в медиатеку: картинка, архив, видео и т.д. Не важно прикреплено вложение к посту или нет.
Функция не изменят/очищает получаемый URL. Если вложение имеет неправильные символы в имени или URL, то следует очистить URL через rawurlencode(). Например, получим относительный путь файла:
$parsed = parse_url( wp_get_attachment_url( $attachment->ID ) ); $url = dirname( $parsed['path'] ) . '/' . rawurlencode( basename( $parsed['path'] ) );
Если нужно получить ссылку на страницу вложения, а не на само вложение, используйте get_attachment_link().
Хуки из функции
Возвращает
false/строку. УРЛ вложения или false, если УРЛ получить не удалось.
Использование
wp_get_attachment_url( $post_id );
- $post_id(число) (обязательный)
- ID вложения, УРЛ которого нужно получить.
Примеры
#1 Получим ссылку на вложение
Допустим мы добавили в медиатеку картинку и она получила ID 55, тогда ссылку на эту картинку мы может получить так:
$image_url = wp_get_attachment_url( 55 ); echo $image_url; // Вернет: http://site.ru/wp-content/uploads/image.png
#2 Выведем картинку прикрепленную к посту
Допустим мы хотим вывести картинку прикрепленную к посту 5. Тогда сначала мы должны узнать ID вложения (прикрепленной картинки), а затем вывести картинку:
// Получим ID вложения поста 5 $id = 5; $attachment_image = get_children( array( 'numberposts' => 1, 'post_mime_type' => 'image', 'post_parent' => $id, 'post_type' => 'attachment' ) ); // вынимаем первую картинку из массива $attachment_image = array_shift($attachment_image); $img = '<img src="' . wp_get_attachment_url( $attachment_image->ID ) . '" alt="" />'; echo $img; // вернет: // <img src="http://site.ru/wp-content/uploads/2011/07/robots.txt.jpg" alt="" />
#3 Вложение записи как фоновая картинка в цикле
if( have_posts() ){ while( have_posts() ){ the_post(); if( has_post_thumbnail() ){ $feat_image_url = wp_get_attachment_url( get_post_thumbnail_id() ); echo '<div style="background-image:url('. $feat_image_url .');"></div>'; } } }
Здравствуйте!
Я вывожу картинку поста после первого абзаца таким способом
Подскажите, пожалуйста, как мне получать alt картинки?
Добрый день!
Я что-то затупил
Предположим, есть пост, в который встроено видео.
Как в цикле получить урл этого видео для каждого поста?
Как встроено видео в пост? Просто добавлена ссылка со стороннего сайта в контент поста или видео загружено непосредственно через медиатеку?
В первом случае - никак.
Во втором как-то так:
post_mime_type для видео:
'video/mpeg'
'video/mp4'
'video/quicktime'
выбирай тот, что нужен тебе
Как видишь, я просто переписал то, что написано в статье
Опять эти ИД!
Чотб получить УРЛ, надо указать ИД. Великолепно! Но только чтобы получить ИД, надо указать УРЛ.
А можно без ИД?
У меня есть тип поста - видео.
В каждый такой пост вставлен ролик.
Я не хочу каждый раз писать HTML5 конструкцию Video отличающуюся двумя урлами: урлом ролика и урлом Featured image
Было бы логично сформировать темплейт, в котором уже есть эта самая конструкция и выводятся переменные: урл видео и урл Featured image/
Вот я и пытаюсь понять, как эти переменные получить.
Добавляй URL видео в метаполя, в шаблоне получай значение этого метаполя и строй нужны HTML5. Не понятно в чем проблема...
Я же говорю: затупил
В конце концов так и сдеоао - только через кастомфилд
Бывает