Skip to main content

API REST WordPress

Endpoint public

Les offres d'emploi sont exposées via l'API REST native de WordPress :

ParamètreValeur
Endpointhttps://groupeniort.fr/wp-json/wp/v2/nosemplois
Base REST (rest_base)nosemplois
MéthodeGET
AuthentificationAucune (lecture publique)

Paramètres de requête utiles

ParamètreExempleDescription
per_page?per_page=100Nombre d'offres par page (max 100)
page?page=2Pagination
orderby?orderby=titleTri
order?order=ascOrdre croissant / décroissant
search?search=communicationRecherche 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.