投稿(製品)が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' );
参考までに、データベースでこのクエリを実行してください:
SELECT * FROM `wp_postmeta` WHERE meta_key IN ('_wp_attached_file', '_wp_attachment_backup_sizes', '_wp_attachment_metadata', '_thumbnail_id')
そして、「_ wp_attached_file」で上記のクエリを実行すると、アップロードディレクトリからパスが取得されます。
それが役に立てば幸い..