wp_query
La balise wp_query permet d'itérer sur les résultats d'une requête WordPress (WP_Query) dans vos templates Twig.
Utilisation de base
Depuis un contrôleur
// Dans votre contrôleur $blogPostQuery = new WP_Query([ 'post_type' => 'post', 'posts_per_page' => 5 ]); return $this->render('blog.twig', [ 'blogPostQuery' => $blogPostQuery ]);
Dans votre template Twig
{% wp_query blogPostQuery %} <article> <h2>{{ post.title }}</h2> <div class="content"> {{ post.content|raw }} </div> {% if post.featured_image %} <div class="featured-image"> {{ post.featured_image|raw }} </div> {% endif %} <footer> <span>Publié le {{ post.date|date('d/m/Y') }}</span> <a href="{{ post.link }}">Lire la suite</a> </footer> </article> {% endwp_query %}
Propriétés disponibles
Propriétés de base
| Propriété | Type | Description |
|---|---|---|
id | int | ID du post WordPress |
title | string | Titre du post |
content | string | Contenu complet du post |
excerpt | string | Extrait du post |
slug | string | Slug de l'URL du post |
date | string | Date de publication |
author | string | Auteur du post |
featured_image | string | Balise HTML de l'image mise en avant |
featured_image_url | string | URL de l'image mise en avant |
link | string | URL complète du post |
Méthodes utiles
Récupération des termes de taxonomie
{% for term in post.get_terms('category') %} <span class="category">{{ term.name }}</span> {% endfor %} {# Pour un seul terme #} {% set category = post.get_term('category') %} {% if category %} <span>Catégorie : {{ category.name }}</span> {% endif %}
Champs personnalisés (Carbon Fields)
{# Un seul champ #} {% set sous_titre = post.get_field('sous_titre') %} {# Tous les champs #} {% set fields = post.get_fields() %} {{ fields.texte }}
Bonnes pratiques
- Pour les images, préférez
featured_image_urlsi vous avez besoin de contrôler le HTML
Remarque
La variable post est automatiquement disponible à l'intérieur du bloc wp_query et représente le post courant dans la boucle. Elle est une instance de Elementum\Facades\Post, qui étend les fonctionnalités de base de WP_Post.