首页 > 解决方案 > WooCommerce 数据库查询:从 thumbnail_id 获取产品类别图像路径+名称

问题描述

我正在尝试列出我所有的 Woocommerce 产品类别

| 类别名称 | 类别蛞蝓 | ... | ... | 类别图片路径+名称 |


使用下面的这个查询,让我大部分时间:

SELECT *
    FROM wp_terms wpt
LEFT JOIN
    wp_termmeta wptm
    ON 
        wptm.term_id = wpt.term_id
    AND
        wptm.meta_key = 'thumbnail_id'
LEFT JOIN
    wp_postmeta wppm
    ON
        wppm.post_id = wptm.meta_value AND
        wppm.meta_key = 'wp_attached_file'
WHERE
    wpt.term_id IN (SELECT term_id FROM wp_term_taxonomy WHERE taxonomy='product_cat')

我有:

| term_id | name           | slug          | ... | meta_key     | meta_value |
| 96      | Machine Screws | machine_screw | ... | thumbnail_id | 2657       |

从这里我无法弄清楚如何或在哪里加入 thumbnail_id 以获取我的图像路径+名称。


编辑:

我已经阅读了大量内容,我知道我应该寻找帖子的附件,但我不能完全为自己加入这些点。


笔记:

标签: phpwordpresswoocommerce

解决方案


看来我已经设法解决了。

我需要:

  • 加入wp_posts

使用链接键:

  • 表:wp_postmeta
    • 列:meta_key
  • 表:wp_posts
    • 列:ID

SELECT *
    FROM wp_terms wpt
LEFT JOIN
    wp_termmeta wptm
    ON 
        wptm.term_id = wpt.term_id
    AND
        wptm.meta_key = 'thumbnail_id'
LEFT JOIN
    wp_postmeta wppm
    ON
        wppm.post_id = wptm.meta_value AND
        wppm.meta_key = 'wp_attached_file'
LEFT JOIN
    wp_posts wpp
    ON 
        wpp.ID = wptm.meta_value
WHERE
    wpt.term_id IN (SELECT term_id FROM wp_term_taxonomy WHERE taxonomy='product_cat')

这给了我想要的列表。

我现在有一个专栏:

| 类别名称 | 类别蛞蝓 | ... | ... | 指导|

有图片网址:

https://test.somesite.com/wp-content/uploads/2021/06/category-Machine-Screws_150x150.svg

我现在要导出到 .CSV

然后我将尝试找出如何达到我的最终目标:

我的最终目标是进行 SQL 更新以将图像与我的产品类别相关联。我有 1,400 种产品类别并且还在增加——虽然进口了 31,000 种产品,但在进行中途。大概 60% 的子类别共享相同的图像。通过管理 GUI 进行图像链接太费力了。

所以我的目标是:

  • 找到thumbnail_id
  • 对于每个常见图像
  • 每个多个“通用”产品类别共享

然后我应该能够直接在数据库中将该thumbnail_id更新到每个常见的产品类别中。


推荐阅读