Je suppose que vous avez en fait un problème PHP. Lorsque vous faites array($results_separated) vous créez essentiellement un tableau à partir d'une chaîne qui ressemble à ceci :"12,114,56," . En faisant cela, PHP crée un tableau comme celui-ci :
array(
0 => "12,114,56,"
)
Et évidemment, WordPress ne peut trouver aucun article avec un tel identifiant ! Ce que vous voulez est en fait un tableau comme celui-ci :
array(
0 => "12",
1 => "114",
2 => "56"
)
Et en fait c'est ce que get_col() renvoie, il vous suffit donc de passer $results à set() fonction :
$query->set ( 'post__in', $results );
MODIFIER :En fait, j'ai réalisé que votre problème est lorsque vous appelez $wpdb->get_col(...) , car il interfère avec la $query vous exécuterez plus tard... Ces variables utilisent d'autres variables globales qui sont probablement remplacées, et c'est pourquoi vous n'obtenez aucun résultat...