Supongo que en realidad tienes un problema de PHP. Cuando haces array($results_separated) básicamente estás creando una matriz a partir de una cadena que se ve así:"12,114,56," . Al hacer eso, PHP está creando una matriz como esta:
array(
0 => "12,114,56,"
)
¡Y obviamente WordPress no puede encontrar ninguna publicación con tal ID! Lo que quieres es en realidad una matriz como esta:
array(
0 => "12",
1 => "114",
2 => "56"
)
Y en realidad eso es lo que get_col() devuelve, por lo que solo necesita pasar $results a set() función:
$query->set ( 'post__in', $results );
EDITAR :En realidad me di cuenta de que tu problema es cuando llamas a $wpdb->get_col(...) , porque está interfiriendo con $query ejecutarás más adelante... Esas variables están usando algunas otras variables globales que probablemente se anulan, y es por eso que no obtienes ningún resultado...