WooCommerce数据库查询:获取产品类别图片路径+名称

时间:2021-08-20 作者:TaoRich

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

| category name | category slug | ... | ... | category image path+name |


使用下面的查询,我可以大致了解:

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\\u id以获取我的图像路径+名称。

编辑:我已经读了很多书,我知道我应该找一个帖子的附件,但我自己不能把这些点连起来。

1 个回复
最合适的回答,由SO网友:TaoRich 整理而成

看来我已经解决了。

我需要:

加入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\')
    
    这给了我想要的清单。

    我现在有一个专栏:

    |类别名称|类别段塞|…|…|guid |

    具有图像url的:

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

    我现在要导出到。CSV

    然后,我将尝试找出如何实现我的最终目标:

    我的最终目标是执行SQL更新,将图像与我的productcategories关联起来。我有1400个产品类别,虽然进口了31000个产品,但仍有一半。可能有60%的子类别共享相同的图像。通过管理GUI进行图像链接需要大量的工具。

    因此,我的目标是:

    查找thumbnail_idProduct Categorythumbnail_id 直接输入数据库中的每个常见产品类别。

    相关推荐

    AWS LightSail Wordpress-使用mysqli连接到实例上的数据库

    我在AWS Lightsail上有一个wordpress网站。在那个网站上,我想使用一个短代码来使用mysqli从数据库中检索数据。但是,每次执行连接到数据库的脚本时,我都会收到一个连接错误。数据库位于同一AWS Lightsail实例上。我想知道是否需要建立SSH隧道,因为如果连接到phpmyadmin,也需要建立SSH隧道。但是,由于脚本是在服务器本身上执行的,因此在我的理解中,这并没有真正意义。我在本地主机上使用了完全相同的代码,它工作得非常好。我错过了什么?//Params to connect