Eu acho que você tem realmente um problema de PHP. Quando você faz
array($results_separated)
você está basicamente criando um array a partir de uma string parecida com esta:"12,114,56,"
. Ao fazer isso, o PHP está criando um array como este:array(
0 => "12,114,56,"
)
E obviamente o WordPress não consegue encontrar nenhum post com esse ID! O que você quer na verdade é um array como este:
array(
0 => "12",
1 => "114",
2 => "56"
)
E, na verdade, é isso que
get_col()
retorna, então você só precisa passar $results
para set()
função:$query->set ( 'post__in', $results );
EDITAR :Na verdade, percebi que seu problema é quando você chama
$wpdb->get_col(...)
, porque está interferindo no $query
você executará mais tarde... Essas variáveis estão usando algumas outras variáveis globais que provavelmente são substituídas, e é por isso que você não está obtendo nenhum resultado...