Une entreprise de logistique régionale publie en moyenne trois à quatre offres d’emploi par mois, chacune avec un titre de poste, une localisation et une date de début souhaitée. Installer un plugin de jobboard complet, avec ses formulaires de candidature et ses tableaux de bord de suivi, semblait disproportionné pour un besoin aussi simple : afficher une liste à jour des postes ouverts sur la page carrières du site.
Le site tournait déjà sur une version de développement du thème par défaut alors en préparation, expérimentant les premières briques du Site Editor avant sa sortie officielle. Le bloc de requête, qui deviendra plus tard la Query Loop que l’on connaît, était disponible dans cette version expérimentale du plugin Gutenberg, suffisamment fonctionnel pour ce cas d’usage restreint.
Un type de contenu personnalisé minimal
Plutôt que de détourner les articles de blog standards, un type de contenu personnalisé offre_emploi a été enregistré via register_post_type(), avec le support des blocs activé et l’argument show_in_rest mis à vrai, condition indispensable pour qu’il soit reconnu par le bloc de requête.
register_post_type( 'offre_emploi', array(
'label' => 'Offres d\'emploi',
'public' => true,
'show_in_rest' => true,
'supports' => array( 'title', 'editor', 'custom-fields' ),
'menu_icon' => 'dashicons-businessman',
) );
- Le titre du poste sert de titre de contenu, sans champ supplémentaire à ce stade.
- La localisation et la date de début sont saisies dans le corps de l’annonce, faute d’interface de champs personnalisés aboutie côté blocs à cette date.
- Aucune taxonomie n’a été ajoutée, le volume d’offres ne le justifiant pas.
L’affichage via le bloc de requête
Sur le gabarit expérimental de la page carrières, le bloc de requête a été configuré pour cibler ce type de contenu personnalisé, avec un tri par date de publication décroissante, seule option de tri réellement stable à ce stade de développement.
<!-- wp:query {"query":{"postType":"offre_emploi","perPage":10,"order":"desc","orderBy":"date"}} -->
<div class="wp-block-query">
<!-- wp:post-template -->
<!-- wp:post-title /-->
<!-- wp:post-excerpt /-->
<!-- /wp:post-template -->
</div>
<!-- /wp:query -->

Les limites rencontrées
Aucun filtre par localisation
Faute de taxonomie ou de champ personnalisé exploitable par le bloc de requête à ce stade, impossible de proposer un filtre par ville ou par région. Les visiteurs devaient parcourir la liste complète pour repérer une offre dans leur secteur.
Un tri encore sommaire
Les options de tri disponibles se limitaient à la date de publication et au titre, sans possibilité de trier par date de début de poste, information pourtant plus pertinente pour un candidat que la date de mise en ligne de l’annonce.
Une instabilité entre versions du plugin
Certains attributs du bloc de requête ont changé de nom d’une version à l’autre du plugin Gutenberg testée sur ce projet, obligeant à revérifier la configuration après chaque mise à jour de l’environnement de développement.
Ce que cette expérience a démontré
Malgré ces limites, la solution a permis d’afficher une liste d’offres à jour sans plugin dédié ni ligne de PHP pour la boucle d’affichage elle-même, seul le type de contenu personnalisé ayant nécessité un développement minimal côté serveur.
Un besoin d’affichage simple mérite rarement un plugin complet : un type de contenu personnalisé et un bloc de requête bien configuré suffisent souvent, même quand cette dernière brique reste encore jeune.
En résumé
Pour cette entreprise de logistique, la liste des offres d’emploi a été résolue avec un type de contenu personnalisé minimal et le bloc de requête alors tout juste disponible en version expérimentale, sans recourir à un plugin de jobboard complet. Le formulaire de candidature, question distincte, a été traité séparément via un lien vers une adresse de contact dédiée.