Nhiều Query Taxonomies Trong WordPress
Khi bạn làm một trang bán hàng hoặc một trang bán sản phẩm nào đó bạn dùng tới chức năng này, trên amngj tài liệu về những thứ này rất ít nên tiện tay đang làm dự án về cái này post lên cho bà con tham khảo cho vui.
trong custom post type thì taxonomies là thứ không thể thiếu cho trang bán hàng, đây là một đoạn query đơn giản
$args = array('post_type' => 'product', 'showposts' => 10, 'tax_query' => $que );
query_posts($arg)
nhưng nó không đáp ứng được các điều kiện phức tạp cho chúng ta sử dụng, đây là đoạn code sử dụng filter với nhiều taxonomy
trong phần “terms” điền giá trị đường dẫn nếu bạn chọn “field” là “id”
trong phần “terms” điền giá trị là ID của term đó nếu bạn chọn “field” là “slug”
nhưng đôi khi các bạn không thểy cạy được do các điều kiện lọc không đúng, có bạn thì muốn dùng OR có bạn thì muốn dùng AND, không sao, vẫn có cách giải quyết
banjc ó thể dùng thêm tham số Operaer để loại trừ nhóm đó ra như sau:
$myquery['tax_query'] = array(
'relation' => 'OR',
array(
'taxonomy' => 'category',
'terms' => array('cheese'),
'field' => 'slug',
),
array(
'taxonomy' => 'dairy',
'terms' => array('yogurt'),
'field' => 'slug',
),
array(
'taxonomy' => 'post_tag',
'terms' => array('bar'),
'field' => 'slug',
'operator' => 'NOT IN',
),
);
query_posts($myquery);
khi bạn Loop một vòng lặp bạn phải nghĩ đến số trang của nó, đây là cách giải quyết
global $query_string;
$myquery = wp_parse_args($query_string);
$myquery = array(
'paged'=>$paged,
'numberposts'=>-1,
'tax_query' => array(
'relation' => 'OR',
array(
'taxonomy' => 'category',
'terms' => array('blog'),
'field' => 'slug',
),
array(
'taxonomy' => 'custom_post_type_1',
'terms' => array('custom_taxonomy_1'),
'field' => 'slug',
),
array(
'taxonomy' => 'custom_post_type_2',
'terms' => array('custom_taxonomy_2'),
'field' => 'slug',
),
),
);
query_posts($myquery);
hy vọng bài viết giúp ích cho các bạn.