Вопрос или проблема
У меня есть два пользовательских таксономии, которые я использую для моих публикаций.
Я пытаюсь получить имена только из одной из них.
В REST API V2 я делаю следующее:
https://example.com/wp-json/wp/v2/posts/14340/?_embed=wp:term
Это встраивает фактические имена для ВСЕХ таксономий (Категории плюс мои две пользовательские), но меня интересуют только имена, связанные с каждой публикацией только для одной из пользовательских таксономий.
Пример ответа:
"_embedded": {
"wp:term": [
[
{
"id": 2272,
"link": "https://example.com/category/cat1/",
"name": "Cat1",
"slug": "cat1",
"taxonomy": "category",
"_links": {
....
}
}
],
[],
[
{
"id": 1740,
"link": "https://example.com/custom1/custom-name/",
"name": "Custom Name",
"slug": "custom-name",
"taxonomy": "custom-tax-1",
"_links": {
....
}
}
],
[
{
"id": 2148,
"link": "https://example.com/custom2/custom-name-1/",
"name": "Custom Name 1",
"slug": "custom-name-1",
"taxonomy": "custom-tax-2",
"_links": {
....
}
},
{
"id": 2150,
"link": "https://example.com/custom2/custom-name-2/",
"name": "Custom Name 2",
"slug": "custom-name-2",
"taxonomy": "custom-tax-2",
"_links": {
....
}
}
]
]
}
Таким образом, я получаю обратно эти таксономии:
- category (1 элемент)
- custom-tax-1 (1 элемент)
- custom-tax-2 (2 элемента)
Как я могу сделать так, чтобы возвращались только значения для custom-tax-2?
Разобрался. Просто нужно сделать вызов такого типа, чтобы получить значения пользовательской таксономии для конкретной публикации:
https://example.com/wp-json/wp/v2/custom-tax-2?post={id}
Ответ или решение
Вопрос о том, как получить данные для конкретной пользовательской таксономии с использованием REST API, является актуальным в разработке на платформе WordPress. Ваша цель — извлечение данных только для пользовательской таксономии, например, custom-tax-2
, исключая другие таксономии, связанные с постами.
Проблематика
Вы столкнулись с ситуацией, когда стандартный запрос REST API возвращает все таксономии, связанные с постом. Ваш текущий подход с /wp/v2/posts/{id}/?_embed=wp:term
охватывает как стандартные категории, так и ваши пользовательские таксономии, что создает избыточность данных.
Решение
Для получения данных только по одной пользовательской таксономии, WordPress REST API позволяет использовать более таргетированные запросы. В вашем случае запрос может быть существенно упрощен:
https://example.com/wp-json/wp/v2/custom-tax-2?post={id}
Здесь {id}
— это ID интересующего вас поста. Этот запрос непосредственно обращается к данным таксономии custom-tax-2
, исключив ненужную информацию о других таксономиях.
Пояснения и преимущества
-
Фильтрация данных: Запросы напрямую к пользовательской таксономии позволяют фильтровать данные, минимизируя нагрузку и количество обрабатываемой информации.
-
Упрощение обработки: Получая только нужные данные, вы облегчаете последующую обработку ответа со стороны клиента, что может сократить затраты на разработку и улучшить производительность приложения.
-
SEO-оптимизация: Чем проще и чище структура данных, тем быстрее страницы могут загружаться. Это влияет на SEO, так как поисковые системы учитывают скорость загрузки при ранжировании.
Дополнительные соображения
Развертывание API-запросов может потребовать изменений в рутинной работе с WordPress, включая возможность обновления плагинов или кода темы для поддержки более кастомизированных решений. Также убедитесь в корректной документации ваших API-запросов для удобства в будущем.
Заключение
Использование таргетированных запросов через REST API для работы с пользовательскими таксономиями не только решает текущую проблему, но и открывает возможности для улучшения архитектуры вашего проекта на WordPress. Это помогает не только в управлении данными, но и улучшает общую эффективность ваших процессов.
Призывы к действию
Подумайте о дальнейшем усовершенствовании системы с учетом специфических бизнес-требований и возможностях ухода от избыточного программного кода.