Étude de cas technique
Développement d’un plugin WordPress sur mesure pour synchroniser des offres d’emploi Jobillico
Conception d’un plugin WordPress personnalisé permettant de synchroniser automatiquement
des offres d’emploi Jobillico dans un site WordPress, avec récupération via API,
extraction complémentaire de données structurées JSON-LD, import dans un CPT
et mise à jour planifiée des annonces.
Résumé technique du projet
Type de projet
Développement d’un plugin WordPress sur mesure pour l’import et la synchronisation d’offres d’emploi.
Source externe
API Jobillico avec authentification, complétée par l’extraction des données structurées présentes dans chaque page d’offre.
Objectif
Éviter la saisie manuelle des emplois dans WordPress et maintenir automatiquement les offres actives à jour.
Destination
Import des emplois dans un Custom Post Type WordPress avec mapping des champs métier et enrichissement de certaines listes structurées.
Fonctionnement
Synchronisation horaire via cron WordPress, avec possibilité de déclenchement manuel depuis l’administration.
Technologies
WordPress, PHP, wp_remote_post, XML, JSON-LD, cURL, WP Cron, WP Query, JetEngine / glossaires structurés.
Contexte du projet
Le besoin consistait à afficher sur un site WordPress les offres d’emploi publiées sur Jobillico,
sans devoir recréer ou mettre à jour manuellement chaque annonce dans l’administration WordPress.
L’objectif était de mettre en place une synchronisation automatisée entre la plateforme externe
et le site du client, afin que les emplois actifs soient importés, structurés et publiés
dans un format cohérent avec l’environnement éditorial existant.
Défi technique
Le principal défi ne se limitait pas à récupérer une liste d’emplois via API.
La source externe permettait d’obtenir les offres, mais plusieurs détails nécessaires à l’affichage
complet dans WordPress devaient être extraits à partir des données structurées présentes
dans la page publique de chaque emploi.
Enjeux techniques principaux
- interroger l’API Jobillico avec authentification ;
- récupérer la liste des offres d’une compagnie précise ;
- obtenir les détails complets de chaque emploi ;
- transformer les données dans une structure compatible WordPress ;
- mettre à jour les annonces existantes sans créer de doublons ;
- retirer automatiquement les offres qui ne sont plus actives à la source ;
- maintenir à jour certaines listes de valeurs structurées utilisées dans le site.
Architecture de la solution
Le plugin développé agit comme un pont entre Jobillico et WordPress.
Il interroge l’API distante, récupère les offres, complète les détails à partir
des données JSON-LD présentes dans les pages publiques, puis alimente un CPT
et ses champs associés dans WordPress.
Jobillico API
│
│ requête XML authentifiée
▼
Plugin WordPress personnalisé
│
├ récupération liste des emplois
├ extraction JSON-LD des pages d’offre
├ transformation des données
├ déduplication / mise à jour
▼
WordPress
│
├ CPT carrières
├ métadonnées
└ champs structurés / glossaires
Récupération des offres via l’API Jobillico
Le plugin construit une requête XML authentifiée, puis l’envoie à l’API Jobillico
à l’aide de wp_remote_post(). Cette étape permet de récupérer la liste
des offres associées à une compagnie donnée.
Une fonction complémentaire permet également de récupérer la liste des compagnies
disponibles via l’API, ce qui facilite l’identification des paramètres nécessaires
à l’intégration.
Extraction complémentaire des détails d’emploi
Pour chaque offre récupérée, le plugin visite la page publique correspondante
et extrait le contenu du bloc JSON-LD JobPosting présent dans le HTML.
Cette approche permet de récupérer des informations structurées complémentaires
comme la description, le type d’emploi, la date de publication, l’adresse,
les exigences scolaires et d’autres attributs utiles à l’intégration WordPress.
Données exploitées
- titre de l’emploi ;
- description ;
- date de publication ;
- type d’emploi ;
- adresse et localisation ;
- exigences scolaires ;
- lien de postulation.
Pourquoi cette approche
L’API fournissait la liste des offres, mais les données structurées présentes
dans la page publique permettaient d’enrichir l’import avec des informations
plus complètes et directement exploitables dans le site WordPress.
Import dans un Custom Post Type WordPress
Les offres sont importées dans un Custom Post Type dédié,
avec un identifiant technique basé sur l’ID Jobillico de l’emploi.
Cette approche permet de retrouver facilement une annonce existante
et d’éviter la création de doublons lors des synchronisations suivantes.
| Donnée source | Destination WordPress |
|---|---|
| ID Jobillico | Slug / identifiant technique de l’entrée |
| Titre | Titre du post |
| Date de publication | post_date / post_date_gmt |
| Description | Métadonnée information |
| Ville / adresse | Métadonnées ville et sélection de ville |
| Type d’emploi | Métadonnée type_de_travail |
| Exigences scolaires | Métadonnée exigences_scolaire |
| Lien de postulation | Métadonnée postuler_maintenant_url |
Gestion des mises à jour et des offres supprimées
La synchronisation a été pensée pour refléter l’état réel de la source externe.
Avant l’import, les offres existantes du CPT sont marquées comme supprimées,
puis les offres encore actives dans Jobillico sont recréées ou republiées.
Cette logique permet d’aligner le site WordPress sur l’inventaire courant
des offres disponibles, sans devoir gérer manuellement les annonces expirées
ou retirées de la source.
Synchronisation automatique et contrôle manuel
Le plugin inclut une synchronisation horaire via WP Cron,
ce qui permet de maintenir les emplois à jour sans intervention continue.
En complément, une page d’outils dans l’administration permet de :
- lancer la synchronisation manuellement ;
- récupérer la liste des compagnies disponibles ;
- faciliter les tests et les ajustements en phase d’intégration.
Enrichissement dynamique de champs structurés
Le plugin ne se contente pas d’importer les annonces.
Il met également à jour certaines listes de valeurs structurées utilisées
dans le site, notamment pour les catégories d’emploi et les villes.
Lorsqu’une nouvelle valeur est détectée, elle peut être ajoutée dynamiquement
dans les champs structurés concernés, ce qui permet de garder l’interface WordPress
et les filtres du site cohérents avec les données réellement importées.
Structure technique simplifiée du plugin
plugin/
├── configuration API Jobillico
├── synchronisation planifiée via cron
├── page admin pour exécution manuelle
├── récupération XML via wp_remote_post()
├── extraction JSON-LD depuis les pages emploi
├── mapping vers CPT WordPress
├── mise à jour des métadonnées
└── enrichissement de champs structurés
Résultat
- réduction importante des manipulations manuelles ;
- mise à jour automatisée des offres d’emploi ;
- intégration cohérente des données dans WordPress ;
- import structuré dans un CPT et ses métadonnées ;
- meilleure fiabilité dans la publication et le retrait des annonces ;
- structure plus maintenable qu’une saisie manuelle ou semi-manuelle.
Questions techniques fréquentes
Peut-on synchroniser automatiquement des offres d’emploi externes dans WordPress ?
Oui. Lorsqu’une source externe fournit une API ou des données structurées exploitables,
un plugin WordPress sur mesure peut être développé pour importer, transformer
et publier automatiquement les offres dans un CPT.
Pourquoi utiliser à la fois une API et les données structurées de la page publique ?
Parce que certaines intégrations nécessitent de compléter les données fournies par l’API
avec des informations plus détaillées présentes dans la page publique, notamment
via des blocs JSON-LD standardisés comme JobPosting.
Comment éviter les doublons lors d’un import d’emplois WordPress ?
Une méthode efficace consiste à utiliser un identifiant stable provenant de la source externe,
ici l’ID de l’offre, afin de retrouver l’entrée existante et la mettre à jour
plutôt que de recréer un nouveau post à chaque synchronisation.
Peut-on planifier la synchronisation automatiquement dans WordPress ?
Oui. WP Cron permet d’exécuter périodiquement une tâche de synchronisation
afin de garder les contenus importés à jour sans intervention manuelle.
Technologies et concepts liés à ce projet
Expertise démontrée
Ce projet démontre une expertise concrète en développement de plugin WordPress sur mesure,
en intégration avec une plateforme tierce, en automatisation d’import de contenu
et en transformation de données structurées vers une architecture WordPress exploitable.
Tel que démontré, Groupe iDev peut développer des solutions WordPress personnalisées
permettant de connecter des systèmes externes, d’automatiser des flux de contenu
et de structurer des intégrations adaptées à la réalité opérationnelle du client.
Étude de cas présentée par Groupe iDev – Développement WordPress et intégrations sur mesure.
