Пользовательская таксономия в REST API

Вопрос или проблема

У меня есть два пользовательских таксономии, которые я использую для моих публикаций.

Я пытаюсь получить имена только из одной из них.

В 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": {
                ....
                }
            }
        ]
    ]
}

Таким образом, я получаю обратно эти таксономии:

  1. category (1 элемент)
  2. custom-tax-1 (1 элемент)
  3. 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, исключив ненужную информацию о других таксономиях.

Пояснения и преимущества

  1. Фильтрация данных: Запросы напрямую к пользовательской таксономии позволяют фильтровать данные, минимизируя нагрузку и количество обрабатываемой информации.

  2. Упрощение обработки: Получая только нужные данные, вы облегчаете последующую обработку ответа со стороны клиента, что может сократить затраты на разработку и улучшить производительность приложения.

  3. SEO-оптимизация: Чем проще и чище структура данных, тем быстрее страницы могут загружаться. Это влияет на SEO, так как поисковые системы учитывают скорость загрузки при ранжировании.

Дополнительные соображения

Развертывание API-запросов может потребовать изменений в рутинной работе с WordPress, включая возможность обновления плагинов или кода темы для поддержки более кастомизированных решений. Также убедитесь в корректной документации ваших API-запросов для удобства в будущем.

Заключение

Использование таргетированных запросов через REST API для работы с пользовательскими таксономиями не только решает текущую проблему, но и открывает возможности для улучшения архитектуры вашего проекта на WordPress. Это помогает не только в управлении данными, но и улучшает общую эффективность ваших процессов.

Призывы к действию

Подумайте о дальнейшем усовершенствовании системы с учетом специфических бизнес-требований и возможностях ухода от избыточного программного кода.

Оцените материал
Добавить комментарий

Капча загружается...