Aller au contenu principal
Version: 0.1.0

Query

Query est une façade à WP_Query permettant de faciliter l'écriture des requêtes.
On peut considérer que c'est un mini ORM pour WordPress et ses post types.

Créer une requête

info

Ici, le code présenté sera éxecuté dans une méthode de controller utilisant l'attribut Template pour rendre une vue Twig.

Tout d'abord, on commence avec une requête simple, on récupère tous les posts du type estate.
Dans ce cas, on peut se passer de la façade Query et utiliser directement la méthode getQuery du post type.

app/Controllers/HomeController.php
$estateQuery = $this->getPostType("estate")->getQuery(); // Option 1 
$queryResult = Query::all('estate'); // Option 2
attention

La façade Query ne retourne pas d'instance de WP_Query mais un tableau de WP_Post.

Autre exemple

On peut également récupérer un post en particulier.

Exemple de requêtes simples
Query::where('post_title', '=', 'laversines')->get('estate'); // Récupère un post avec le titre "laversines"
Query::find(80, 'estate'); // Récupère un post avec l'ID 80
Query::withTaxonomy(['type', 'caracteristics'])->get('estate'); // Récupère les posts avec les taxonomies "type" et "caracteristics"
Query::include(['estate_price', 'estate_surface'])->get('estate'); // Récupère les posts et inclus les champs personnalisés : "estate_price" et "estate_surface"
Query::orderBy('post_title', 'ASC')->get('estate'); // Récupère les posts et les trie par titre
Exemple de requêtes enchaînées
Query::where('post_title', '=', 'laversines') // Récupère les posts avec le titre "laversines"
    ->withTaxonomy('caracteristics') // Inclus les options choisis dans la taxonomie "caracteristics"
    ->include('estate_price') // Inclus le champs personnalisé : "estate_price"
    ->orderBy('date', 'ASC') // Trie par date
    ->get('estate'); // Exécute la requête pour le post type "estate"