Поскольку у вас есть предложение использовать pre_get_post, я даю вам фрагмент кода, который поможет вам в достижении вашей цели. Вам нужно изменить значение, переданное для условий.
add_action( 'pre_get_posts', 'custom_pre_get_posts_query' );
function custom_pre_get_posts_query( $q ) {
if ( ! $q->is_main_query() ) return;
if ( ! $q->is_post_type_archive() ) return;
if ( ! is_admin() && is_shop() ) {
$q->set( 'post__in', array( 99, 96, 93, 90, 87,83 ) );
$q->set( 'cat', 'shoes' );
return;
}
}