Me interesa el tema... me pasa algo parecido.
Me suscribo!
Te comento que ya lo he arreglado y solo probando miles de cosas. El problema es que cuando haces un custom loop en Woocommerce y lo limitas a 5 entradas por ejemplo, el plugin de Woocommerce sigue teniendo la paginación para la cantidad de productos predeterminados. Me explico:
Woocommerce intenta meter en su loop 10 entradas y tienes 11 entradas, por lo tanto tienes una paginación de 2 páginas (1, 2)
Tú haces un loop está limitado para que muestre tan solo 2 entradas y tienes 11 entradas, por lo tanto tu paginación tiene 6 páginas (1, 2, 3 , 4, 5, 6).
Ahora bien, La paginación de Woocommerce mete 10 entradas por cada página, por lo tanto en tu loop en la primera página estarías mostrando 2 entradas y 8 estarían no visibles, pero seguirían estando asignadas a la página 1, por lo tanto mostrarías de la entrada 1 - 10 en la primera página de la paginación, de la 10 a la 20 en la segunda paginación, y luego en la página 3 al no haber más entradas mostrarías un 404.
LA SOLUCIÓN:
Vale, pues vamos a limitar la paginación de WooCommerce al mismo límite que la paginación de nuestro loop. Añadimos esto a functions:
Insertar CODE, HTML o PHP:
/*-----------------------------------------------------------------------------------*/
/* Hace que el custom loop se limite a tantos productos como nosotros queramos */
/*-----------------------------------------------------------------------------------*/
add_filter( 'loop_shop_per_page', create_function( '$cols', 'return 3;' ), 20 );
donde return: 3 ponemos el número de entradas que queremos que se muestren (las mismas que en nuestro loop). Espero que te haya ayudado