Que se passe-t-il lorsqu'un article (produit) n'a pas de guide, car il a la même image avec un autre produit?
Par exemple:
Requête1:
select guid from wp_posts where post_type='attachment' and post_parent=num
Ne renvoie rien.
Requête2:
select guid from wp_posts where ID=num
Renvoie l'url du produit.
Dans ce cas, comment trouver l'URL d'image de ce produit?
Tout d'abord, le GUID n'est pas l'URL. C'est un "identifiant globalement unique". WordPress utilise l'URL à cette fin, mais y accéder n'est pas un un moyen fiable pour obtenir l'URL de quoi que ce soit (c'était une mauvaise idée, mais est conservé de cette façon pour une compatibilité descendante).
Il n'est pas possible d'interroger directement l'URL de l'image dans la base de données. L'URL complète n'y est pas stockée. Mais si vous avez l'ID d'un produit et que vous souhaitez obtenir l'URL de son image, vous pouvez le faire:
$product = wc_get_product( $product_id );
$image_id = $product->get_image_id();
$image_url = wp_get_attachment_image_url( $image_id, 'full' );
Pour votre référence, il suffit d'exécuter cette requête dans la base de données:
SELECT * FROM `wp_postmeta` WHERE meta_key IN ('_wp_attached_file', '_wp_attachment_backup_sizes', '_wp_attachment_metadata', '_thumbnail_id')
Et si vous exécutez la requête ci-dessus avec "_wp_attached_file" seulement, vous obtiendrez le chemin du répertoire de téléchargement.
J'espère que cela aide..