web-dev-qa-db-ja.com

製品画像の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をどのように見つければよいですか?

2
user8761967

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

参考までに、データベースでこのクエリを実行してください:

 SELECT * FROM  `wp_postmeta` WHERE meta_key IN ('_wp_attached_file', '_wp_attachment_backup_sizes',  '_wp_attachment_metadata',  '_thumbnail_id')

そして、「_ wp_attached_file」で上記のクエリを実行すると、アップロードディレクトリからパスが取得されます。

それが役に立てば幸い..

0