HUSKY - Product Filter for WooCommerce

Elementor商品フィルター:ElementorでHUSKYを使用する

HUSKYは、Elementorで構築されたWooCommerceショップで動作します。ショートコードウィジェット内の[woof]ショートコードを使用して任意のページにフィルターを追加するか、通常のウィジェットとしてサイドバーに保持します。

商品グリッドがElementor自体(カスタムループまたは商品テンプレート)によってレンダリングされる場合は、子テーマのfunctions.phpに以下のコードを追加してフィルターに接続します。

add_action('pre_get_posts', function ($query) {
    if (defined('ELEMENTOR_VERSION')) {
        if (is_object($query) AND isset($query->query['post_type'])) {
            if ($query->query['post_type'] === 'product' /* AND is_page(__YOUR_PAGE_ID__)*/) {
                global $WOOF;
                if (is_object($WOOF) AND !empty(woof()->get_request_data())) {
                    woof()->woof_products_ids_prediction(true);
                    $query->query_vars['post__in'] = $_REQUEST['woof_wp_query_ids'];
                }
            }
        }
    }

    return $query;
});

is_page(__YOUR_PAGE_ID__)のコメントを解除すると、特定の1ページでのみフィルタリングが実行されます。

HUSKYがアクティブな状態でElementorエディターが開かなくなった場合は、ElementorからHUSKYウィジェットの登録を解除します。

add_action('elementor/widgets/widgets_registered', function($widgets_manager)
{

    $widgets_manager->unregister_widget_type('wp-widget-woof_widget');

});

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