我向产品添加了产品属性键和值。
我想通过此属性查询产品。我对此有一个查询(此处不相关),但没有返回任何内容。因此,我弹出PHPMyAdmin并开始搜索本地数据库,从头开始。
我在任何地方都找不到我的新属性。
所以:my-attribute = "Test Value"
是通过网站的本地主机版本的管理员设置的。检查数据库连接,指向本地MySQL实例。保存的属性,单击产品上的更新,离开产品页面,然后返回以确保属性确实存在于产品上并保存。
数据库中没有任何内容。
在my-attribute
表pa_my-attribute
列中搜索wp_term_taxonomy
或taxonomy
会得到零结果。我在这里确实看到了其他记录,其中包含pa_
和其他一些自定义属性名称。
单击wp_terms
或wp_woocommerce_attribute_taxonomies
之类的其他表也不会显示任何与my-attribute
或qa_my-attribute
输入匹配的记录。
为第二个产品添加了相同的确切属性,但仍然找不到任何内容。重新确认数据库连接。我找不到数据库中的记录。
但是管理员的产品上绝对存在。
我想念什么?
答案 0 :(得分:0)
原来它们存储在序列化字段中。
$attribute_name = 'my-attribute';
$attribute_value = 'cupcakes';
$serialized_value = serialize( 'name' ) . serialize( $attribute_name ) . serialize( 'value' ) . serialize( $attribute_value );
$args = array(
'post_type' => 'product',
'post_status' => 'any',
'posts_per_page' => -1,
'orderby' => 'title',
'order' => 'ASC',
'meta_query' => array(
array(
'key' => '_product_attributes',
'value' => $serialized_value,
'compare' => 'LIKE',
),
),
);
$query = new WP_Query( $args );
$products = $query->get_posts();
//neat little array of product objects (not the full product object,
//just data that came from query. Can use wordpress loop on $query or
//wc_get_product(--pass product ID here--)