Функция возвращает URL вложения с указанным в параметрах ID, например http://ваш-сайт.ru/wp-content/uploads/2013/11/image.png. Если же вложения с указанным ID не существует, возвращает false
.
Если мы говорим о изобрежениях и версии WordPress 5.3 и выше, то после того, как оригинал изображения перестал использоваться, как максимально допустимый размер, функция не всегда может вернуть вам оригинал изображения. В этом случае рекомендую обратить внимание на wp_get_original_image_url().
wp_get_attachment_url( $post_id = 0 )
- $post_id
- (целое число) ID вложения, по умолчанию — текущее вложение из цикла.
Примеры
echo wp_get_attachment_url( 54 ); // http://ваш-сайт.ru/wp-content/uploads/image.png
А следующий пример имеет смысл только в том случае, когда вложение — изображение:
echo '<img src="' . wp_get_attachment_url( 55 ) . '" />'; // <img src="http://ваш-сайт.ru/wp-content/uploads/image.png" />
Фильтр wp_get_attachment_url
Возвращаемый функцией результат проходит через фильтр:
$url = apply_filters( 'wp_get_attachment_url', $url, $post->ID );
- $url
- (строка) возвращаемый URL вложения
- $post->ID
- (целое число) ID вложения
Итак, у нас есть URL вложения и его ID, что можно изменить, зная эти параметры?
Давайте предположим, что вложения с ID = 55, 57, 78 — это изображения, URL которых при выводе нужно засунуть в HTML тег <img />
. Т.е. нужно, чтобы выводилась сразу картинка.
В итоге будет вот такой код:
function true_img_attachment_url( $url, $post_id ){ if( in_array( $post_id, array( 55, 57, 78 ) ) ) { return '<img src="' . $url . '" />'; } else { return $url; } } add_filter('wp_get_attachment_url', 'true_img_attachment_url', 10, 2);
Кроме того, вы можете добавить проверку того, что вложения с указанными ID — действительно изображения. Для этого мы воспользуемся функцией wp_attachment_is_image(). 2-я строчка в коде изменится следующим образом:
if( in_array( $post_id, array( 55, 57, 78 ) ) && wp_attachment_is_image( $post_id ) ) {
P.S. Под изображениями в данном случае понимаются файлы с расширениями «jpg», «jpeg», «jpe», «gif» и «png».