Как добавить названия категорий и тегов к ответу REST API в WordPress
WordPress предоставляет мощный REST API, который позволяет взаимодействовать с контентом вашего сайта программным способом. По умолчанию, REST API возвращает ID категорий и тегов, прикрепленных к постам, но часто возникает необходимость получить их названия. В этой статье мы рассмотрим, как можно добавить названия категорий и тегов к ответу REST API в WordPress.
Шаг 1: Добавление функции для обработки ответа REST API
Для начала нам нужно создать функцию, которая будет добавлять названия категорий и тегов к ответу REST API. Вставьте следующий код в файл functions.php
вашей темы или создайте новый плагин:
function add_category_and_tag_names_to_rest($response, $post, $request) {
// Проверяем, есть ли категории и теги в ответе
if (isset($response->data['categories']) && is_array($response->data['categories'])) {
$category_ids = $response->data['categories'];
$category_names = array();
foreach ($category_ids as $category_id) {
$term = get_term($category_id, 'category');
if ($term && !is_wp_error($term)) {
$category_names[] = $term->name;
}
}
// Добавляем имена категорий в ответ
$response->data['category_names'] = $category_names;
}
if (isset($response->data['tags']) && is_array($response->data['tags'])) {
$tag_ids = $response->data['tags'];
$tag_names = array();
foreach ($tag_ids as $tag_id) {
$term = get_term($tag_id, 'post_tag');
if ($term && !is_wp_error($term)) {
$tag_names[] = $term->name;
}
}
// Добавляем имена тегов в ответ
$response->data['tag_names'] = $tag_names;
}
return $response;
}
Шаг 2: Добавление функции к фильтру REST API для постов
Теперь нам нужно подключить нашу функцию к фильтру REST API, чтобы она применялась ко всем ответам, содержащим посты. Добавьте следующий код сразу после функции, которую мы создали на предыдущем шаге:
add_filter('rest_prepare_post', 'add_category_and_tag_names_to_rest', 10, 3);
Заключение
Вот и все! Теперь, когда вы запрашиваете посты через REST API, в ответе будут включены не только ID категорий и тегов, но и их названия. Это может быть особенно полезно, если вы разрабатываете фронтенд-приложение, которое должно отображать читабельные имена категорий и тегов.
Пример ответа REST API с добавленными названиями категорий и тегов может выглядеть так:
{
"id": 1,
"date": "2024-07-15T12:00:00",
"title": {
"rendered": "Заголовок поста"
},
"categories": [2, 4],
"category_names": ["Категория 1", "Категория 2"],
"tags": [6, 8],
"tag_names": ["Тег 1", "Тег 2"]
}
Надеемся, что эта инструкция была вам полезна. Удачи в разработке ваших проектов на WordPress!
Обсудим ваш проект?
Не ждите идеального момента или подходящего времени — начинайте прямо сейчас! Свяжитесь со мной, и я помогу воплотить ваши идеи в реальность.