我已经按类别进行了过滤,但是不知道如何通过自定义属性或元值来过滤产品
代码:
$key="naam"; //custom attribute name
$value="test";// custom value
$query_custom = array('key' => $key, 'value' => $value);
$meta_query[] = $query_custom ;
$args=array('meta_query'=>$meta_query, 'product_cat' => 'activiteiten','posts_per_page' => 10,'post_type' => 'product');
$loop = new WP_Query( $args );
`
答案 0 :(得分:1)
您可以使用以下代码实现。
$args = array(
'meta_query'=> array(
array(
'key' => 'vote', // here use your field name
'compare' => '=', // comparison sign
'value' => 5, // value using that you can search
)
),
'product_cat' => 'activiteiten',
'posts_per_page' => 10,
'post_type' => 'product'
) );
query_posts( $args ); // get all the posts data using above filter.
query_posts用于查找带有参数列表的帖子meta_query
用于查找匹配的自定义字段数据。
答案 1 :(得分:1)
以下是涉及以下内容的有效查询示例:
代码:
$products = new WP_Query( array(
'posts_per_page' => 10,
'post_type' => 'product',
'post_status' => 'publish',
// 1. Product category filter
'product_cat' => 'clothing',
// 2. The Post meta query part (filtering by post meta value)
'meta_query' => array( array(
'key' => '_price',
'value' => 5,
'type' => 'numeric',
'compare' => '>',
), ),
// 3. The taxonomy meta query part (filtering by term values)
'tax_query' => array( array(
'taxonomy' => 'pa_color', // Product attribute taxonomy: always start with 'pa_'
'field' => 'slug', // Can be 'term_id', 'slug' or 'name'
'terms' => array('blue'),
), ),
) );
// Testing output
if( $products->have_posts() ) :
echo '<ul>'
while ( $products->have_posts() ) : $products->the_post();
echo '<li class="post-id-' . get_the_id() . '">' . get_the_title() . '</li>';
endwhile;
wp_reset_postdata();
echo '</ul>'
endif;
经过测试,可以正常工作:
Wordpress WP_Query
的官方参考文档: