Aller au contenu principal
Version: 0.7.3

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éTypeDescription
idintID du post WordPress
titlestringTitre du post
contentstringContenu complet du post
excerptstringExtrait du post
slugstringSlug de l'URL du post
datestringDate de publication
authorstringAuteur du post
featured_imagestringBalise HTML de l'image mise en avant
featured_image_urlstringURL de l'image mise en avant
linkstringURL 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_url si 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.