Jag antar att du faktiskt har ett PHP-problem. När du gör array($results_separated) du skapar i princip en array från en sträng som ser ut så här:"12,114,56," . Genom att göra det skapar PHP en array så här:
array(
0 => "12,114,56,"
)
Och uppenbarligen kan WordPress inte hitta några inlägg med ett sådant ID! Vad du vill ha är faktiskt en sådan här array:
array(
0 => "12",
1 => "114",
2 => "56"
)
Och det är faktiskt vad get_col() returnerar, så du behöver bara skicka $results till set() funktion:
$query->set ( 'post__in', $results );
REDIGERA :Jag insåg faktiskt att ditt problem är när du ringer $wpdb->get_col(...) , eftersom det stör $query du kommer att köra senare... Dessa variabler använder några andra globala variabler som förmodligen åsidosätts, och det är därför du inte får några resultat...