Javascript-ом попробуйте.
сделал так:
// количество товара на странице 80/100/160
function my_select(){
$s = filter_input(INPUT_GET,'s',FILTER_SANITIZE_STRING);
$post_type = filter_input(INPUT_GET,'post_type',FILTER_SANITIZE_STRING);
echo "<form class='woocommerce-perpage' method='get'><span>Products per Page:</span>";
if ($s) {
echo "<input type='hidden' name='s' value='$s' />";
}
if ($post_type) {
echo "<input type='hidden' name='post_type' value='$post_type' />";
}
echo "<select onchange='this.form.submit()' name='select_page'>";
$orderby_options = array(''=>'','40'=>'40','60'=>'60');
foreach($orderby_options as $key=>$value){
echo "<option value='$value'>$value</option>";
}
echo "</select></form>";
}
add_action('pre_get_posts','ga_pre_get_products_query');
function ga_pre_get_products_query($query){
$per_page = filter_input(INPUT_GET,'select_page',FILTER_SANITIZE_NUMBER_INT);
global $wp_query;
if($query->is_main_query() && !is_admin() ){
$query->set('posts_per_page',$per_page);
}
}
// end количество товара на странице
<div class="selectPage"><span class="prosmotrTovara blueSort">Просмотр товара</span>
<a href="/shop/?select_page=40">40</a>/
<a href="/shop/?select_page=60">60</a>/
<a href="/shop/?select_page=100">100</a>
шт.</div>