web-dev-qa-db-fra.com

Obtenir l'URL des images du produit (woocommerce)

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?

2
user8761967

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' );
3
Jacob Peattie

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..

0
Akshay Prabhakar