我正在手动获取 woocommerce 产品。
问题是我在产品上有一个自定义字段,即 _locations。一个产品可以属于多个位置,所以我在 wp-admin 的产品添加表单中提供了一个多选列表。
下面是我用来保存元值的函数
function woo_add_custom_general_fields_save( $post_id ){
// Select
$woocommerce_select = $_POST['_locations'];
if( !empty( $woocommerce_select ) )
update_post_meta( $post_id, '_locations', esc_attr(maybe_serialize($woocommerce_select )) );
}
请注意,我已经序列化了 meta_value 的数据,因此我只有一个唯一键
_locations
以及与之关联的所有位置值。现在在我取货时出现问题
$args = array(
'post_type' => 'product',
'product_cat' => $food_category->slug,
'meta_key' => '_locations',
'meta_value' => 'newyork'
);
$loop = new WP_Query($args);
我想获得仅适用于
newyork
的产品但在数据库中它存储为序列化数组s:69:"a:2:{i:0;s:7:"newyork";i:1;s:13:"massachusetts";}";
我怎样才能让这个查询只获取纽约产品。
谢谢
最佳答案
尝试:
$args = array(
'post_type' => 'product',
'product_cat' => $food_category->slug,
'meta_query' => array(
array(
'key' => '_location',
'value' => '%newyork%',
'compare' => 'LIKE',
),
),
);
关于php - WP_Query 当元值保存为序列化数组时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26364378/