Guide d’utilisation du site

Actualités et Annonces (Blog)

template verticale dans theme builder

Membres

Ce guide a pour but d’expliquer la procédure de création, de modification et de gestion des profils membres du Centre au sein du site WordPress.
Les données des membres sont gérées à l’aide du plugin Advanced Custom Fields (ACF), qui permet d’associer des champs personnalisés à chaque fiche membre.

Accès à la section « Membres »

  1. Connectez-vous à l’interface d’administration WordPress.
  2. Dans le menu latéral, accédez à Membres du centre
  3. Ajouter un membre pour créer une nouvelle fiche,
  4. ou Modifier pour mettre à jour un membre existant.

Structure des champs ACF

Chaque fiche membre comporte plusieurs champs .
Vous trouverez ci-dessous la description complète de ces champs et les recommandations pour leur remplissage.

Nom du champ (ACF) Type de champ Description / Utilisation
1 Poste (poste) Texte Indique la fonction ou le rôle du membre au sein du Centre.
Exemple : Professeur de droit international public.
2 Domaines d’expertise (domaines_expertise) Éditeur WYSIWYG Décrivez les domaines de recherche ou de spécialisation du membre.
Utilisez des listes à puces pour plus de lisibilité.
3 E-mail (e-mail) E-mail Adresse professionnelle du membre.
Format requis : nom@exemple.be.
4 Téléphone (Telephone) Texte Numéro de téléphone professionnel.
Format recommandé : +32 (0)X XX XX XX XX.
5 Adresse (adresse) Texte Adresse postale professionnelle (facultative selon le profil).
6 URL CV (FR) (url_cv) URL Lien vers le CV en français (format PDF ou page en ligne).
7 URL CV (EN) (url_cv_eng) URL Lien vers le CV en anglais.
8 Biographie (biographie) Éditeur WYSIWYG Texte de présentation du membre.
Rédigez un court paragraphe biographique (5 à 10 lignes).
9 Activités de recherche (activites_de_recherche) Éditeur WYSIWYG Décrivez les axes ou projets de recherche principaux.
10 Activités d’enseignement (activites_d’enseignement) Éditeur WYSIWYG Présentez les cours ou séminaires assurés par le membre.
11 Principales publications (principales_publications) Éditeur WYSIWYG Listez les publications majeures, idéalement en liste à puces ou avec mise en forme académique.
12 Pratique du droit international (pratique_du_droit_international) Éditeur WYSIWYG Détaillez les expériences pratiques (missions, arbitrages, etc.) liées au droit international.
13 Archives journalistiques (archives_journalistiques) Éditeur WYSIWYG Utilisé pour mentionner les articles ou contributions médiatiques publiées par le membre.

Statuts des membres

Deux statuts principaux sont utilisés pour distinguer les types de membres :

Statut Description
Membre actif Le membre fait partie du Centre actuellement. Son profil est affiché dans la section principale « Membres ».
Ancien membre Le membre n’est plus actif, mais son profil est conservé dans les archives pour référence historique.

Gestion du statut dans WordPress :

Le statut peut être défini via le (« Statut ») sur la barre latérale droite lors de l’édition du membre.
Veillez à bien attribuer le bon statut afin que le membre s’affiche dans la section correspondante du site (actifs ou anciens).

Ajout d’un nouveau membre – Procédure récapitulative

  1. Aller dans Membres → Ajouter.
  2. Renseigner tous les champs selon la structure ci-dessus.
  3. Définir le statut du membre.
  4. Ajouter une photo de profil (au format portait Dimensions : 1080 x1350 pixels  Rapport d’aspect : 4:5  ).
  5. Cliquer sur Publier pour mettre le profil en ligne.

Modification ou suppression

Modification :
Accédez au membre souhaité, mettez à jour les informations, puis cliquez sur Mettre à jour.

Suppression :
Cliquez sur Déplacer dans la corbeille pour retirer le profil.
⚠️ Cette action peut être irréversible selon les paramètres du site.

Publications

Les publications collectives

Les publications collectives sont gérées directement via Divi à partir d’une section globale.
Elles apparaissent automatiquement sur la page d’accueil et sur la page dédiée aux publications collectives.
Étapes à suivre :

  1.  Accédez à la page d’accueil de votre site.
  2. Activez le Visual Builder de Divi (bouton violet en haut de la page).
  3. Descendez jusqu’à la section intitulée « Publications collectives ».
  4. Passez la souris sur cette section et ouvrez le module correspondant (il s’agit du module Groupe Carousel).
  5. Dans la sidebar qui s’ouvre à gauche, vous verrez la liste des éléments du carousel.
  6. Dupliquez le premier “Carousel Item” pour créer une nouvelle publication.
  7. Une nouvelle fiche apparaît :
  8. Cliquez sur l’image pour la remplacer par celle de votre nouvelle publication.
  9. Cliquez sur le texte pour le modifier (titre, description, etc.).
  10. Cliquez sur le petit bouton bleu “Save” pour enregistrer les changements de cet item.
  11.  Une fois vos modifications terminées, cliquez sur “Enregistrer” ou “Save” en bas à droite du Visual Builder.
  12. Confirmez la sauvegarde lorsque Divi vous le demande.

Votre nouvelle publication collective sera désormais visible :
• sur la page d’accueil,
• et sur la page des publications collectives.

 

Les publications individuelles

Les publications individuelles sont directement liées aux profils des membres.
Chaque membre dispose d’un champ intitulé « Principale publication »
Ce sont ces principales publications qui apparaissent automatiquement sur la page dédiée aux publications individuelles.

Ajouter ou modifier une publication individuelle

  1. Ouvrez le profil du membre concerné.
  2. Repérez le champ « Principale publication ».
  3. Modifiez ou ajoutez le texte correspondant à la publication.
  4. Sauvegardez le profil : la publication s’affichera automatiquement sur la page dédiée.

Exclure un membre sans publication

Si un membre ne possède pas de publication et que vous souhaitez le retirer de la liste, suivez les étapes suivantes :

  1. Rendez-vous sur la page « Publications individuelles ».
  2. Activez le Visual Builder de Divi.
  3. Cliquez sur l’icône en forme d’écrou ⚙️ du module Group Settings.
  4. Déployez le menu “Loop” pour afficher les réglages.
  5. Recherchez le champ “Exclude specific post”.
  6. Cliquez sur ce champ pour ouvrir la liste des membres.
  7. Sélectionnez le membre que vous souhaitez exclure
  8. , puis sauvegardez vos modifications.
  9. Enfin, enregistrez la page dans Divi pour valider les changements.

Le membre sélectionné sera désormais retiré de la page des publications individuelles.

Midi du Centres / évènements

Les Midis du centre sont gérés via les articles de WordPress

Accéder à la gestion des Midis du Centre

  1. Connectez-vous à l’interface d’administration WordPress.
  2. Dans le menu de gauche, cliquez sur ArticlesTous les articles.
  3. En haut de la liste, utilisez le filtre par catégorie pour afficher uniquement les publications des Midis du Centre :
    • Sélectionnez la catégorie Midis du Centre
    • Cliquez sur Filtrer

Créer un nouvel événement

  1. Cliquez sur Ajouter un nouvel article.
  2. Dans le champ Titre, indiquez le nom de l’événement (par exemple : Les nouvelles perspectives du droit international).
  3. Dans le contenu principal, rédigez une courte présentation :
    • Le thème abordé
    • Le contexte ou les objectifs de la rencontre
    • Toute information complémentaire utile
  4. Dans la colonne de droite, sous Catégories, cochez Midis du Centre..
  5. Ajoutez une image à la une représentant l’intervenant principal (portrait ou photo officielle).
  6. Remplir les champs spécifiques à l’événement (ACF)

    Sous le contenu principal, un groupe de champs intitulé Informations de l’événement est disponible.
    Ces champs structurent automatiquement les informations sur le site.

    Remplissez-les comme suit :

    Champ Type de contenu attendu Exemple
    Date de l’événement Sélecteur de date 12 novembre 2025
    Heure de début Sélecteur de date et heure 12/11/2025 – 12h30
    Heure de fin Sélecteur de date et heure 12/11/2025 – 14h00
    Intervenants / Orateurs Nom(s) complet(s) des intervenants Pr. Marie Dupont
    Fonction Fonction ou affiliation Professeure à l’ULB
    Lien d’inscription URL complète https://forms.gle/xxxxxx
    Lieu de l’événement Salle ou bâtiment Salle A.2.107, Campus du Solbosch

    Modifier ou supprimer un événement existant

    1. Rendez-vous dans ArticlesTous les articles.
    2. Filtrez par la catégorie Midis du Centre.
    3. Passez la souris sur le titre de l’événement souhaité :
      • Cliquez sur Modifier pour le mettre à jour
      • Cliquez sur Corbeille pour le supprimer

     

    Documentation technique : Filtrage automatique des événements futurs

    Contexte

    Ce code permet d’afficher uniquement les événements futurs dans WordPress avec Divi Query Builder, en contournant une limitation technique : l’impossibilité de comparer dynamiquement des dates directement dans l’interface Divi.


    Problème initial

    • Champ ACF : date_evenement (format : Y-m-d H:i:s, ex: 2024-12-25 14:30:00)
    • Objectif : Afficher uniquement les événements dont la date est supérieure à aujourd’hui
    • Limitation : Divi Query Builder ne peut pas interpréter de valeurs dynamiques comme « maintenant » ou current_date dans ses filtres

    Solution mise en place

    Principe

    Au lieu de comparer directement date_evenement > maintenant dans Divi (impossible), on crée un champ calculé est_futur qui stocke le résultat de cette comparaison :

    • est_futur = "oui" → L’événement est dans le futur
    • est_futur = "non" → L’événement est passé

    Divi filtre ensuite simplement sur est_futur = "oui".

    Le code (à placer dans functions.php)

    php
    // 1. Créer la tâche CRON (s'exécute chaque nuit à 2h du matin)
    add_action('wp', function() {
        if (!wp_next_scheduled('maj_evenements_futurs')) {
            wp_schedule_event(strtotime('02:00:00'), 'daily', 'maj_evenements_futurs');
        }
    });
    
    // 2. Action qui s'exécute quotidiennement
    add_action('maj_evenements_futurs', function() {
        $posts = get_posts([
            'post_type' => 'post',
            'posts_per_page' => -1,
            'meta_key' => 'date_evenement',
        ]);
        
        $maintenant = current_time('Y-m-d H:i:s');
        
        foreach ($posts as $post) {
            $date = get_field('date_evenement', $post->ID);
            if ($date) {
                update_post_meta($post->ID, 'est_futur', ($date > $maintenant) ? 'oui' : 'non');
            }
        }
    });
    
    // 3. Mise à jour aussi à la sauvegarde du post (pour les nouveaux événements)
    add_action('save_post', function($post_id) {
        if (get_post_type($post_id) === 'post' && !wp_is_post_revision($post_id)) {
            $date = get_field('date_evenement', $post_id);
            if ($date) {
                $maintenant = current_time('Y-m-d H:i:s');
                update_post_meta($post_id, 'est_futur', ($date > $maintenant) ? 'oui' : 'non');
            }
        }
    });

    Explication détaillée du code

    Partie 1 : Programmation de la tâche CRON

    php
    add_action('wp', function() {
        if (!wp_next_scheduled('maj_evenements_futurs')) {
            wp_schedule_event(strtotime('02:00:00'), 'daily', 'maj_evenements_futurs');
        }
    });

    Rôle : Programme une tâche automatique qui s’exécutera chaque nuit à 2h du matin.

    Fonctionnement :

    • wp : S’exécute à chaque chargement de WordPress
    • Vérifie si la tâche maj_evenements_futurs est déjà programmée
    • Si non, la crée avec une fréquence quotidienne (daily)

    Partie 2 : Mise à jour automatique nocturne

    php
    add_action('maj_evenements_futurs', function() {
        $posts = get_posts([
            'post_type' => 'post',
            'posts_per_page' => -1,
            'meta_key' => 'date_evenement',
        ]);
        
        $maintenant = current_time('Y-m-d H:i:s');
        
        foreach ($posts as $post) {
            $date = get_field('date_evenement', $post->ID);
            if ($date) {
                update_post_meta($post->ID, 'est_futur', ($date > $maintenant) ? 'oui' : 'non');
            }
        }
    });

    Rôle : Mise à jour quotidienne de TOUS les événements, même ceux qui ne sont pas modifiés manuellement.

    Fonctionnement :

    1. Récupère tous les posts ayant un champ date_evenement
    2. Compare chaque date avec la date/heure actuelle
    3. Met à jour le champ est_futur :
      • "oui" si l’événement est dans le futur
      • "non" si l’événement est passé

    Exemple :

    • Le 3 décembre : un événement du 5 décembre → est_futur = "oui"
    • Le 6 décembre : le même événement → est_futur = "non" (mis à jour automatiquement la nuit du 5 au 6)

    Partie 3 : Mise à jour instantanée lors de la sauvegarde

    php
    add_action('save_post', function($post_id) {
        if (get_post_type($post_id) === 'post' && !wp_is_post_revision($post_id)) {
            $date = get_field('date_evenement', $post_id);
            if ($date) {
                $maintenant = current_time('Y-m-d H:i:s');
                update_post_meta($post_id, 'est_futur', ($date > $maintenant) ? 'oui' : 'non');
            }
        }
    });

    Rôle : Mise à jour immédiate quand un article est créé ou modifié.

    Fonctionnement :

    • Se déclenche à chaque sauvegarde d’article
    • Vérifie que c’est bien un post (pas une révision)
    • Recalcule et met à jour le champ est_futur

    Utilité : Évite d’attendre la prochaine exécution du CRON (2h du matin) pour que les nouveaux événements soient correctement marqués.


    Configuration dans Divi Query Builder

    Une fois le code en place, configurez le filtre Divi comme suit :

    • Meta Key : est_futur
    • Compare : =
    • Meta Value : oui
    • Type : (laisser par défaut)

    Avantages de cette solution


    Vérification et tests

    Vérifier que le CRON est programmé

    1. Installer le plugin WP Crontrol (gratuit)
    2. Aller dans Outils → Cron Events
    3. Chercher maj_evenements_futurs
    4. Confirmer la prochaine exécution : Demain à 02:00

    Tester manuellement la mise à jour

    Ajouter temporairement ce shortcode dans functions.php :

    php
    add_shortcode('test_maj_evenements', function() {
        do_action('maj_evenements_futurs');
        return 'Mise à jour manuelle effectuée !';
    });
    • Créer une page avec [test_maj_evenements]
    • La visiter → Tous les événements sont immédiatement mis à jour
    • Supprimer la page après le test

    Vérifier le champ est_futur dans l’admin

    1. Éditer n’importe quel article
    2. Scroller en bas de page
    3. Cliquer sur « Champs personnalisés »
    4. Le champ est_futur apparaît avec la valeur oui ou non

    Notes techniques importantes

    Le champ est_futur n’est PAS un champ ACF

    C’est un meta_field WordPress standard créé automatiquement par update_post_meta(). Il n’apparaît pas dans la configuration ACF, mais Divi Query Builder peut quand même le lire et filtrer dessus.

    Fréquence de mise à jour

    • Nouveaux articles : Instantané (dès la sauvegarde)
    • Articles existants : Quotidien (chaque nuit à 2h)

    Si un événement se termine à 15h et que le CRON s’exécute à 2h, il restera visible jusqu’à 2h du matin le lendemain. Pour une mise à jour plus fréquente, modifier 'daily' par 'hourly' dans la partie 1.

    Post types supportés

    Le code actuel filtre uniquement le post type 'post'. Pour cibler un Custom Post Type (ex: 'event'), modifier cette ligne dans les parties 2 et 3 :

    php
    'post_type' => 'post',  // Remplacer par 'event' ou autre

    Maintenance

    Désactiver temporairement le filtre

    Pour afficher tous les événements (passés ET futurs), modifier simplement le filtre Divi :

    • Meta Value : laisser vide
    • Ou supprimer complètement la Meta Query

    Le code continue de tourner en arrière-plan (les champs restent à jour).

    Supprimer complètement le système

    1. Supprimer le code dans functions.php
    2. Installer le plugin WP Crontrol
    3. Supprimer la tâche maj_evenements_futurs
    4. (Optionnel) Supprimer le champ est_futur de tous les posts :
    php
    // Code à exécuter une fois puis supprimer
    $posts = get_posts(['post_type' => 'post', 'posts_per_page' => -1]);
    foreach ($posts as $post) {
        delete_post_meta($post->ID, 'est_futur');
    }

    Support et modifications

    Ajouter un champ de debug

    Pour voir en temps réel les valeurs calculées :

    php
    add_action('wp_footer', function() {
        if (current_user_can('administrator')) {
            $posts = get_posts(['post_type' => 'post', 'posts_per_page' => 5]);
            echo '<div style="position:fixed;bottom:0;background:#000;color:#0f0;padding:10px;z-index:9999;">';
            echo 'Date actuelle: ' . current_time('Y-m-d H:i:s') . '<br>';
            foreach ($posts as $post) {
                $date = get_field('date_evenement', $post->ID);
                $est_futur = get_post_meta($post->ID, 'est_futur', true);
                echo $post->post_title . ' → ' . $date . ' → ' . $est_futur . '<br>';
            }
            echo '</div>';
        }
    });

    Contact

    Pour toute question ou modification, contacter le développeur ayant mis en place cette solution.


    Date de création : Décembre 2024
    Version : 1.0
    Compatibilité : WordPress 5.0+, ACF Pro, Divi Query Builder