多个内部联接get_posts WooCommerce / WordPress

时间:2019-03-08 10:45:40

标签: php mysql wordpress performance woocommerce

我正在运行带有Storefront主题的WooCommerce,并且我的类别页面非常慢。监视查询时,我在“ term_taxonomy_id”上看到多个内部联接

WHERE 1=1 AND ( wp_term_relationships.term_taxonomy_id IN (25) 
      AND tt1.term_taxonomy_id IN (25,268477,268482,268506,268507 etc etc) 
      AND AND tt2.term_taxonomy_id IN (25,268477,268482,268506,268507 etc etc)

但是当我运行(在phpmyadmin中)相同的查询时,在tt1.term_taxonomy_id和tt2.term_taxonomy_id上没有内部联接时,得到相同的结果。

我试图通过将函数挂接到pre_get_posts来摆脱那些内部联接

if ( isset ( $wp_query->query_vars['product_cat'] ) ) {
        $wp_query->set('tax_query', array( array (
            'taxonomy' => 'product_cat',
            'terms' => 25,
            'include_children' => false
        ) ) );
    }

,但不影响查询。有谁知道如何做到这一点?

0 个答案:

没有答案