Comme le titre l'indique, je n'arrive pas à obtenir $ wpdb-> get_results pour obtenir des résultats. L'exécution de la requête "brute" est réussie, mais cela semble échouer pour une raison inconnue et étrange.
global $wpdb;
$sql = "SELECT *
FROM something aki,
somethingelse akb,
somethingelseelse ac
WHERE aki.keyID = akb.keyID
AND akb.someID = ac.someID
AND aki.type LIKE '%thing%'";
$corps = $wpdb->get_results($sql, OBJECT);
var_dump($corps);
Utilisez $wpdb->show_errors( true )
avant la requête et voyez quelle erreur revient.
Mon problème (parce que j'ai connu la même chose) est que je devrais utiliser $wpdb->posts
au lieu de wp_posts
dans la requête. Le préfixe des tables peut changer de WP installation à installation ou même dans la même installation en fonction du temps (par exemple, un administrateur peut changer le préfixe quand il le souhaite). Donc, on devrait écrire la requête comme ça:
$query = "select <stuff here> from $wpdb->posts where <stuff here>";
Peut-être un peu tard, mais il vous manque l'appel de "préparer" nécessaire dans wordpress:
$Table_Name = $wpdb->prefix.'Your Table Name';
$sql_query = $wpdb->prepare("SELECT * FROM $Table_Name WHERE aki.keyID=%d AND akb.someID=%d AND aki.type like %s", akb.keyID, ac.someID, ''%thing%');
$result = $wpdb->query( $sql_query );
Plusieurs résultats peuvent être trouvés dans le tableau.