好的,我需要直接从数据库中获取WooCommerce中所有post_id(产品)的列表,其中产品具有我可以找到的属性term_id
。
更全面地说,假设我有一个名为“颜色”的属性,其中包含一串颜色,就像这样
term_id name
1 white and blue
2 blue and red and green
3 white and green
4 green
我可以在名称字段中搜索单词'white'的所有实例,并获得数组1和3
我现在想查找与条款1和3相关的帖子
我已经走了这么远,但认为我在某个地方制造了一个问题。因此,使用此SQL查询
SELECT * FROM wpix_posts WHERE ID IN ( SELECT object_id FROM
wpix_term_relationships WHERE term_taxonomy_id IN (
SELECT term_id FROM wpix_terms WHERE name LIKE '$filterstring' )
)
首先获取术语,然后在关系中查找它们,然后获取帖子...但是我知道它不正确,因为我得到的结果与正确的产品无关
在数据库中,我可以在meta_key'_product_attributes'的序列化字符串中看到wp_postmeta
中的数据,该字符串包含我想要的term_id(下面的示例,其中'colours'的值为3 | 6,因此我想要它与上面示例中数组中的“ 3”匹配)
a:20 {{s:4:“名称”; s:6:“ pa_pdf”; s:5:“值”; s:11:“ 1 | 4”; s:8:“位置”; i:16; s:10:“ is_visible”; b:0; s:12:“ is_variation”; b:0; s:11:“ is_taxonomy”; b:1;} s:8:“ pa_range”; a :6:{s:4:“名称”; s:8:“ pa_range”; s:5:“值”; s:11:“ 73758 | 73755”; s:8:“位置”; i:17; s:10:“ is_visible”; b:1; s:12:“ is_variation”; b:0; s:11:“ is_taxonomy”; b:1;} s:13:“ pa_appearance”; a:6:{ s:4:“名称”; s:13:“ pa_appearance”; s:5:“值”; s:11:“ 61076 | 61074”; s:8:“位置”; i:18; s:10: “ is_visible”; b:1; s:12:“ is_variation”; b:0; s:11:“ is_taxonomy”; b:1;} s:11:“ colours”; a:6:{s:4: “ name”; s:11:“ colours”; s:5:“ value”; s:11:“ 3 | 6”; s:8:“ position”; i:19; s:10:“ is_visible”; b:0; s:12:“ is_variation”; b:0; s:11:“ is_taxonomy”; b:1;}}
但是我不确定如何仅搜索那些条目并通过我拥有的数组将post_id
返回