Получение URL изображений товара (WooCommerce)
Что происходит, когда пост (товар) не имеет guid, потому что использует то же изображение, что и другой товар?
Например:
Запрос 1:
select guid from wp_posts where post_type='attachment' and post_parent=num
Не возвращает ничего.
Запрос 2:
select guid from wp_posts where ID=num
Возвращает URL товара.
В этом случае, как мне найти URL изображения этого товара?

Во-первых, GUID — это не URL. Это "глобально уникальный идентификатор". WordPress использует URL для этой цели, но обращение к нему не является надежным способом получения URL для чего-либо (это была плохая идея, но она сохранена для обратной совместимости).
Невозможно напрямую запросить URL изображения из базы данных. Полный URL там не хранится. Но если у вас есть ID товара и вы хотите получить URL его изображения, вы можете сделать следующее:
$product = wc_get_product( $product_id );
$image_id = $product->get_image_id();
$image_url = wp_get_attachment_image_url( $image_id, 'full' );

Спасибо, но если я хочу найти это в базе данных, в какой таблице я могу это найти?

Как я уже говорил, полный URL не хранится в базе данных. Он генерируется программно на основе нескольких факторов, таких как URL сайта, структура постоянных ссылок, аргументы перезаписи типа записи, структура директории загрузок и настройки wp-config. Вам нужно получить его с помощью функции, подобной той, что в моем ответе.

Я видел где-то запрос для получения изображений товаров из базы данных.
Возможно, это вам поможет.
Просто установите необходимые параметры согласно вашим требованиям.
SELECT p.ID,am.meta_value FROM wp_posts p LEFT JOIN wp_postmeta pm ON pm.post_id = p.ID AND pm.meta_key = '_thumbnail_id' LEFT JOIN wp_postmeta am ON am.post_id = pm.meta_value AND am.meta_key = '_wp_attached_file' WHERE p.post_type = 'product' AND p.post_status = 'publish';

Для справки просто выполните этот запрос в базе данных:
SELECT * FROM `wp_postmeta` WHERE meta_key IN ('_wp_attached_file', '_wp_attachment_backup_sizes', '_wp_attachment_metadata', '_thumbnail_id')
Если же выполнить вышеуказанный запрос только с "_wp_attached_file", вы получите путь из директории загрузок.
Надеюсь, это поможет..
