10
janv.

En tant que développeur Wordpress, vous devez sûrement vous heurter a générer des requêtes SQL complexes. Il peut être très utile de les debugguer au sein de Sequel Pro si comme moi, vous ne passez pas par un phpMyAdmin.

Comment afficher la requête SQL correspondante à une instance de WP_Query ?

Pour rappel, voici comment afficher une requête SQL Wordpress :

$customPosts = new WP_Query($yourArgs);
echo "Last SQL-Query: {$customPosts->request}";

Voilà, vous avez maintenant une belle requête générée par la mécanique interne de Wordpress. Cependant, il y a de grande chance pour que si vous la copiez et collez dans la fenêtre "Requête" de Sequel Pro, le logiciel vous retourne une belle erreur; Par exemple :

Expression #1 of ORDER BY clause is not in GROUP BY clause and contains nonaggregated column 'pvpj.wp_postmeta.meta_value' which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by

Voici donc la solution :

Il suffit de desactiver le mode SQL only_full_group_by par NO_ENGINE_SUBSTITUTION en tapant la ligne suivant dans le fenêtre "requête" de Sequel pro et d'executer cette requête en faisant cmd + R.

SET SESSION sql_mode="NO_ENGINE_SUBSTITUTION";