Помогите вывести URL по ID фотки в галереи
Код выводит URL последней фотки из галереи поста с товаром WooCommerce.
$product_id = get_queried_object_id();
$product = new WC_product($product_id);
$attachment_ids = $product->get_gallery_image_ids();
foreach( $attachment_ids as $attachment_id )
{
echo $Original_image_url = wp_get_attachment_url( $attachment_id );
}
Как задать, чтобы можно было вывести фотку по ID фотки в галереи? Например всего в галереи две фотки, а нужно вывести не последнюю, а первую? Благодарю за помощь!
Ответы (2 шт):
Если вы хотите вывести фотку по ID (под ID я так понимаю, вы имеете ввиду идентификатор изображения, они идут в строку через запятую) Вы можете использовать этот простой код
обязательно в начале функции вставить эту строку: global $wpdb; Эта строка подключает базу данных Wordpress
<?php
global $wpdb;
$table_posts = $wpdb->prefix."posts"; // таблица базы данных постов (Здесь хранятся ссылки на изображения)
$id_picture = 100; // Идентификатор картинки, для примера поставил 100
$sql = $wpdb->get_results( "SELECT * FROM $table_posts where ID = '$id_picture'");
foreach($sql as $sql_new)
{
$image_id = $sql_new->ID; // Идентификатор картинки
$image_url = $sql_new->guid; // Ссылка (url) картинки
}
?>
Вы можете получить изображения товара с помощью методов get_gallery_image_ids и get_image_id. В get_gallery_image_ids будет массив айдишников, а в get_image_id просто айдишник.
global $product;
$gallery = $product->get_gallery_image_ids(); // Получить все картинки из галлереи
$thumb = $product->get_image_id(); // Получить изображение товара (главное)
Выводить предпочительнее с помощью ф-ции wp_get_attachment_image, но если вам нужно просто получить ссылку, то с помощью wp_get_attachment_image_url:
echo wp_get_attachment_image( $image_id, 'shop_catalog' ); // Вывести изображение
echo sprintf( '<img src="%">, wp_get_attachment_image_url( $image_id, 'shop_catalog' ) ); // Вывести изображение