WooCommerce ORDERBY RAND WITH TAX_QUERY非随机

时间:2016-08-15 作者:adam2k

我想更改我的woocommerce产品详细信息页面上的相关产品部分,以便它只显示相关的子类别产品(not 仅具有共同父类别的产品)。例如:

如果用户正在访问分类在“父类别->子1类别”下的产品详细信息页面,则用户查看的所有产品都是“子1类别”产品。

我正在尝试修改woocommerce/single-product/related.php 使用以下php脚本在我的主题文件夹中创建文件以完成此行为:

$product_cat_slugs = array();
foreach (get_the_terms($product->ID, \'product_cat\') as $term) {
    if($term->slug !== \'skip-this-cat\') {
        array_push($product_cat_slugs, $term->slug);
    }
}

$args = array(
    \'post_type\'            => \'product\',
    \'ignore_sticky_posts\'  => 1,
    \'no_found_rows\'        => 1,
    \'posts_per_page\'       => 4,
    \'orderby\'              => \'rand\',
    \'post__not_in\'         => array( $product->id ),
    \'tax_query\'            => array(
                            array(
                                \'taxonomy\' => \'product_cat\',
                                \'field\'    => \'slug\',
                                \'terms\'    => $product_cat_slugs
                            )
                          )
);


$products = new WP_Query( $args );
分类是正确的,但我的问题是我没有得到一组随机的帖子。每次装载我只收到相同的帖子。

1 个回复
最合适的回答,由SO网友:adam2k 整理而成

WP\\U查询似乎是正确的。我正在使用WP\\U Engine托管,我必须联系他们的支持台,并将票证抬高以解决问题。显然,这个问题,即使有\'orderby\' => \'rand\', 正在由其服务器缓存。我应该早点联系他们,但我认为这是我在查询中做得不对的事情。谢谢大家的帮助!