HUSKY - Product Filter for WooCommerce

Divi商品フィルター:HUSKYをDiviで使う

HUSKYはDiviのショップで動作します。DiviのコードモジュールまたはテキストモジュールにHUSKYの[woof]ショートコードを入れるか、サイドバーのウィジェットとして配置してください。

Divi Shopモジュールは独自テンプレートで商品を表示するため、子テーマのfunctions.phpに次のコードを追加してフィルターに接続します。

//Make the Husky product filter work with page builder layouts 
add_action('pre_get_posts', function ($query) {
    if (is_object($query) AND isset($query->query['post_type'])) {
        if ($query->query['post_type'] === 'product' /* AND is_page(1867) */) {
            if (isset($query->query['wc_query']) AND 'product_query' == $query->query['wc_query']) {
                return $query;
            }
            
            global $WOOF;
            if (is_object($WOOF) AND !empty(woof()->get_request_data())) {
                woof()->woof_products_ids_prediction(['per_page'=>99999]);
                $query->query_vars['post__in'] = $_REQUEST['woof_wp_query_ids'];
            }
        }
    }

    return $query;
});

絞り込みを1ページに限定するには、is_page(1867)のコメントを外して自分のページIDを指定してください。

関連記事: ページビルダーとカスタムテンプレートをフィルタリング可能にする