帖子缩略图未存储为URL。帖子缩略图作为附件ID存储在_thumbnail_id
发布元数据。实际文件存储为_wp_attached_file
发布该附件帖子的元数据。WordPress不会在数据库中存储附件的完整URL。它只存储文件的路径,相对于上载目录。
此查询将列出产品ID及其缩略图文件的路径。然后,您需要将这些内容附加到上载目录的URL中:
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\'
由于站点URL和上传目录是动态的,并且可以通过PHP进行控制,因此存储完整的URL是没有意义的。WordPress使用PHP根据站点配置和文件的相对路径确定文件的URL。存储URL也没有意义,因为有些操作需要路径,而不是URL。
还请注意,使用SQL执行此操作的唯一原因是,如果您在WordPress之外访问文件路径,而不是使用REST API。如果您在WordPress/WooCommerce模板中,那么显示产品图像的正确方式是:
$product = wc_get_product( $product_id );
echo $product->get_image( \'full\' );