URL パラメーターが何もしない理由は、WooCommerce が価格フィルター ウィジェットがアクティブな場合にのみ価格フィルターを実行するためです。
これを回避するには、価格フィルターを初期化する woocommerce 関数を使用して名前を変更し、ウィジェットがアクティブでない場合でもフィルターを実行するように変更します。次に、woocommerce 価格フィルター初期化関数のフックを解除し、自分のものを接続します。
つまり、これを functions.php ファイルに入れます。
function my_price_filter_init() {
global $woocommerce;
if ( ! is_admin() ) {
unset( $_SESSION['min_price'] );
unset( $_SESSION['max_price'] );
if ( isset( $_GET['min_price'] ) )
$_SESSION['min_price'] = $_GET['min_price'];
if ( isset( $_GET['max_price'] ) )
$_SESSION['max_price'] = $_GET['max_price'];
add_filter( 'loop_shop_post_in', 'woocommerce_price_filter' );
}
}
remove_action('init', 'woocommerce_price_filter_init');
add_action( 'init', 'my_price_filter_init' );
これは、 widget-price_filter.php の woocommerce_price_filter_init を変更したものです。上記の関数は、価格フィルター ウィジェットを実行する JavaScript をロードしません。そのため、ウィジェットを機能させる必要がある場合は、それを元に戻す必要があります (または、お知らせいただければ、編集して元に戻します)。