API REST WordPress
Endpoint public
Les offres d'emploi sont exposées via l'API REST native de WordPress :
| Paramètre | Valeur |
|---|---|
| Endpoint | https://groupeniort.fr/wp-json/wp/v2/nosemplois |
Base REST (rest_base) | nosemplois |
| Méthode | GET |
| Authentification | Aucune (lecture publique) |
Paramètres de requête utiles
| Paramètre | Exemple | Description |
|---|---|---|
per_page | ?per_page=100 | Nombre d'offres par page (max 100) |
page | ?page=2 | Pagination |
orderby | ?orderby=title | Tri |
order | ?order=asc | Ordre croissant / décroissant |
search | ?search=communication | Recherche plein texte |
Exemple de requête
curl https://groupeniort.fr/wp-json/wp/v2/nosemplois?per_page=10&orderby=date&order=desc
Champs exposés dans la réponse
En plus des champs natifs WordPress (id, title, content, link…), tous les meta fields sont inclus dans la réponse :
{
"id": 512,
"title": { "rendered": "Chargé de communication H/F" },
"content": { "rendered": "<p>Description...</p>" },
"_position_id": "1042",
"_apply_uri": "https://niort-freres.hrmaps.cloud/...",
"_organization_name": "Niort Frères",
"_parent_organization_name": "Groupe Niort",
"_industry": "Communication",
"_job_grade": "Cadre",
"_career_level": "Confirmé",
"_schedule": "Temps plein",
"_schedule_work": "35h",
"_contract_type": "CDI",
"_start_date": "2025-03-0",
"_end_date": "",
"_publication_date": "2025-01-15T00:00:00",
"_close_date": "2025-02-28T00:00:00",
"_city": "Niort",
"_postal_code": "79000",
"_adress": "12 rue de l'Exemple",
"_contenu": "Description complète du poste en version texte bru"
}
Enregistrement des champs REST
Chaque meta est enregistrée manuellement via register_rest_field :
add_action('rest_api_init', function () {
$meta_fields = [
'_position_id', '_apply_uri', '_organization_name',
'_industry', '_job_grade', '_career_level',
'_schedule', '_contract_type', '_start_date',
// ...
];
foreach ($meta_fields as $field) {
register_rest_field('job_offer', $field, [
'get_callback' => function ($object) use ($field) {
return get_post_meta($object['id'], $field, true);
},
'schema' => null,
]);
}
});
Ajout d'un nouveau champ
Pour exposer un nouveau meta dans l'API REST, il suffit de l'ajouter au tableau $meta_fields dans ce hook.