Skip to main content

Champs & Mapping API ↔ WordPress

Custom Post Type job_offer

Les offres d'emploi sont stockées dans un Custom Post Type dédié :

Propriété CPTValeur
Slug internejob_offer
Slug URL public/offres-emploi
Base REST APInosemplois
Supportstitle, editor, custom-fields
ArchiveActivée
Visible dans RESTOui (show_in_rest: true)

Mapping complet des champs

Champs natifs du post

Champ WordPressChamp API HRMapsNotes
post_titlePositionTitleTitre de l'offre
post_contentPositionFormattedDescription.ContentHTML assaini via wp_kses_post()
post_statusToujours publish

Meta fields personnalisées

Meta WordPressChamp API HRMapsTypeNotes
_position_idPositionIDintClé d'unicité — utilisée pour détecter les doublons
_apply_uriApplyURIstringLien de candidature direct HRMaps
_organization_nameOrganizationNamestringEntité employeur
_parent_organization_nameParentOrganizationNamestringOrganisation parente
_industryPositionIndustry.NamestringSecteur d'activité
_job_gradeJobGrade.NamestringNiveau de poste
_career_levelCareerLevel.NamestringNiveau de carrière
_schedulePositionSchedule.NamestringType de temps de travail
_schedule_workPositionSchedule.WeeklyWorkDurationstringDurée hebdomadaire
_contract_typePositionOfferingType.NamestringType de contrat (CDI, CDD…)
_start_datePositionStartDatestringTronqué à 9 caractères (substr(..., 0, 9))
_end_datePositionEndDatestringDate de fin de contrat
_publication_datePublicationStartDatestringDate de mise en ligne
_close_dateApplicationCloseDatestringDate limite de candidature
_cityPositionLocation.CityNamestringVille du poste
_postal_codePositionLocation.PostalCodestringCode postal
_adressPositionLocation.AddressLinestringTypo volontaire : un seul d
_contenuPositionFormattedDescription.ContentstringRésumé texte brut, 80 caractères max
Typo _adress

Le meta key _adress (un seul d) est issu du code d'origine. Ne pas corriger sans mettre à jour toutes les requêtes et templates Elementor qui s'y réfèrent, sous peine de casser l'affichage des adresses.

Champ _start_date

La date de début est tronquée à 9 caractères via substr($job['PositionStartDate'], 0, 9). Le format attendu est YYYY-MM-DD (10 caractères ISO 8601) — il manque potentiellement le dernier chiffre. À surveiller si l'affichage des dates semble incorrect.


Exemple de réponse API (simplifié)

[
{
"PositionID": 1042,
"PositionTitle": "Chargé de communication H/F",
"IsArchived": false,
"ApplyURI": "https://niort-freres.hrmaps.cloud/...",
"OrganizationName": "Niort Frères",
"ParentOrganizationName": "Groupe Niort",
"PositionIndustry": { "Name": "Communication" },
"JobGrade": { "Name": "Cadre" },
"CareerLevel": { "Name": "Confirmé" },
"PositionSchedule": {
"Name": "Temps plein",
"WeeklyWorkDuration": "35h"
},
"PositionOfferingType": { "Name": "CDI" },
"PositionStartDate": "2025-03-01",
"PositionEndDate": null,
"PublicationStartDate": "2025-01-15",
"ApplicationCloseDate": "2025-02-28",
"PositionLocation": {
"CityName": "Niort",
"PostalCode": "79000",
"AddressLine": "12 rue de l'Exemple"
},
"PositionFormattedDescription": {
"Content": "<p>Description complète du poste...</p>"
}
}
]