Chyba masz problem z PHP. Kiedy robisz array($results_separated) w zasadzie tworzysz tablicę z ciągu, który wygląda tak:"12,114,56," . W ten sposób PHP tworzy tablicę w ten sposób:
array(
0 => "12,114,56,"
)
I oczywiście WordPress nie może znaleźć żadnych postów z takim identyfikatorem! To, czego potrzebujesz, to w rzeczywistości tablica taka:
array(
0 => "12",
1 => "114",
2 => "56"
)
A właściwie to właśnie get_col() zwraca, więc wystarczy przekazać $results do set() funkcja:
$query->set ( 'post__in', $results );
EDYTUJ :Właściwie zdałem sobie sprawę, że twój problem polega na wywołaniu $wpdb->get_col(...) , ponieważ koliduje z $query wykonasz później... Te zmienne używają innych zmiennych globalnych, które prawdopodobnie zostaną nadpisane i dlatego nie otrzymujesz żadnych wyników...