Espace « Chantiers »

Documentation – Espace Chantiers WordPress

1. Objectif du projet

Créer un espace privé multi-chantiers dans WordPress, avec un accès restreint à chaque chantier pour les utilisateurs autorisés, une fiche chantier dynamique, un listing personnel et des commentaires sécurisés.


2. Structure des fichiers

📄 functions.php

  • Déclare le post type personnalisé chantier
  • Active les commentaires sur ce type de contenu
  • Ajoute le slug /chantier/ via rewrite

register_post_type('chantier', array(
  'label' => 'Chantiers',
  'public' => true,
  'has_archive' => true,
  'rewrite' => array('slug' => 'chantier'),
  'supports' => array('title', 'editor', 'comments'),
  'show_in_rest' => true,
  'menu_icon' => 'dashicons-hammer'
));
  
Attention : Si les permaliens sont en « simple », WordPress ne reconnaît pas les slugs comme /chantier/, ce qui bloque toutes les URLs du post type personnalisé.

📄 archive-chantier.php

  • Affiche la liste des chantiers liés à l’utilisateur connecté
  • Utilise les champs ACF : client, description, date de début, date de fin

foreach ($chantiers as $chantier) {
  $client = get_field('client', $chantier->ID);
  $description = get_field('description', $chantier->ID);
  ...
}
  

📄 single-chantier.php

  • Affiche les détails du chantier
  • Restreint l’accès au chantier si l’utilisateur n’est pas autorisé
  • Affiche les commentaires uniquement pour les utilisateurs liés au chantier

if (!in_array($slug_chantier, $slugs_autorises)) {
  wp_die('⛔ Accès refusé');
}
if (comments_open() || get_comments_number()) {
  comments_template();
}
  

3. Gestion des permaliens

Lors des premiers tests, le site affichait les URLs de type ?chantier=26730 au lieu de /chantier/chantier-alpha. Ce comportement était dû au fait que les permaliens étaient réglés sur « Simple ».

Pour corriger cela :

  1. Aller dans Réglages > Permaliens
  2. Sélectionner « Nom de l’article »
  3. Cliquer sur « Enregistrer les modifications »
  4. Vérifier que les URLs prennent bien la forme /chantier/mon-chantier

4. API REST – récupération des commentaires

Les commentaires des chantiers peuvent être récupérés via l’API REST :

GET https://tonsite.com/wp-json/wp/v2/comments?post=26764

Ce point permet de lister les commentaires en dehors du site, dans une app ou une interface personnalisée.


5. Bonus

  • Accès restreint par utilisateur via ACF (relation avec les chantiers)
  • Affichage conditionnel des commentaires
  • Préparation pour affichage enrichi : avancement, documents, images, etc.

Fier de ton chantier numérique 🛠️ ? Tu peux l’être.