Mysql
 sql >> Base de données >  >> RDS >> Mysql

Passer les identifiants à la requête pre_get_posts dans la fonction

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...