WooCommerce命令没有工作

时间:2017-11-13 12:45:22

标签: php wordpress woocommerce

我们的产品模板在将产品添加到购物车后显示四个交叉销售。如果产品没有定义四个交叉销售,那么任何差距都会被随机顺序标记为“通用交叉销售”自定义字段的产品填充。

remove_all_filters('posts_orderby'); // suggested by other answers
$args = array(
    'post_type' => 'product',
    'orderby' => 'rand',
    'order' => 'desc',
    'posts_per_page' => $gaps_to_fill,
    'post__not_in' => $posts_to_exclude,
    'meta_query' => array(
        array(
            'key' => 'is_generic_cross_sell',
            'compare' => '==',
            'value' => '1'
        )
    )
);
$generics = new WP_Query( $args );
if( $generics->have_posts() ) : 
    while ( $generics->have_posts() ) : $generics->the_post();
        wc_get_template_part( 'content', 'product-modal' );
    endwhile; 
endif;
wp_reset_query();

如果我运行print_r($ generics),查询看起来像:

WP_Query Object ( [query] => Array ( [post_type] => product [orderby] => rand [order] => desc [posts_per_page] => 4 [post__not_in] => Array ( [0] => 908 ) [meta_query] => Array ( [0] => Array ( [key] => is_generic_cross_sell [compare] => == [value] => 1 ) ) )

但query_vars看起来像:

 [query_vars] => Array ( [post_type] => product [orderby] => menu_order [order] => ASC [posts_per_page] => 4 [post__not_in] => Array ( [0] => 914 ) [meta_query] => Array ( [0] => Array ( [key] => is_generic_cross_sell [compare] => == [value] => 1 ) )

即。 orderby从“rand”更改为“menu_order”。

为什么会发生这种情况,我该如何预防呢?

1 个答案:

答案 0 :(得分:0)

问题是由"简单自定义发布订单"插件。

解决方案: 替换了"简单的自定义发布订单"使用"发布类型顺序" (相同的功能)。 更新查询以包含:

ContextThemeWrapper

查询现在返回随机顺序,但客户端仍然可以拖放以重新排列后端的产品订单。