Предполагам, че всъщност имате проблем с PHP. Когато направите array($results_separated) вие всъщност създавате масив от низ, който изглежда така:"12,114,56," . Правейки това, PHP създава масив като този:
array(
0 => "12,114,56,"
)
И очевидно WordPress не може да намери никакви публикации с такъв ID! Това, което искате всъщност е масив като този:
array(
0 => "12",
1 => "114",
2 => "56"
)
И всъщност това е, което get_col() връща, така че просто трябва да подадете $results към set() функция:
$query->set ( 'post__in', $results );
РЕДАКТИРАНЕ :Всъщност разбрах, че проблемът ви е, когато извиквате $wpdb->get_col(...) , защото пречи на $query ще изпълните по-късно... Тези променливи използват някои други глобални променливи, които вероятно ще бъдат заменени и затова не получавате никакви резултати...