我在template.php文件中使用查询按类别显示wooCommerce
个产品。
我的查询如下:
<?php
$args = array(
'post_type' => 'product',
'stock' => 1,
'posts_per_page' => 99,
'tax_query' => array(
'relation' => 'OR',
array(
'taxonomy' => 'product_cat',
'field' => 'slug',
'terms' => 'system_components',
'menu_order' => 'asc'
),
array(
'taxonomy' => 'product_cat',
'field' => 'slug',
'terms' => 'add-ons',
'menu_order' => 'asc'
)
),
'meta_query' => array(
array(
'key' => '_visibility',
'value' => 'hidden',
'compare' => '!='
)
));
$loop = new WP_Query($args);
if ($loop->have_posts()) {
while ($loop->have_posts()) :
$loop->the_post(); ?>
.....
这很有效,我可以看到我想要的产品和我不想要的产品。
我唯一不理解的是'menu_order' => 'ASC'
似乎不起作用。
我在产品设置中输入菜单顺序并不重要,订单不会改变。
我在这里做错了什么?
由于
答案 0 :(得分:4)
从'menu_order' => 'asc'
移除tax_query
部分并添加到main,这应该有效:
$args = array(
'post_type' => 'product',
'stock' => 1,
'posts_per_page' => 99,
'orderby' => 'menu_order',
'order' => 'ACS',
'tax_query' => array(
'relation' => 'OR',
array(
'taxonomy' => 'product_cat',
'field' => 'slug',
'terms' => 'system_components'
),
array(
'taxonomy' => 'product_cat',
'field' => 'slug',
'terms' => 'add-ons'
)
),
'meta_query' => array(
array(
'key' => '_visibility',
'value' => 'hidden',
'compare' => '!='
)
));
正如您在documentation中所看到的,tax_query
没有参数menu_order
。
答案 1 :(得分:0)
请在您的产品中设置页面顺序。
为此,请转到“管理员”面板。单击左侧菜单中的“产品”菜单,然后编辑产品并设置页面顺序。