Как читать данные пользовательского типа записей в режиме Headless CMS

12 сент. 2021 г., 23:50:05
Просмотры: 194
Голосов: 0

Я разрабатываю сайт, состоящий из двух частей — headless CMS на поддомене, где вводится контент, и основного домена, где отображаются данные. WordPress установлен только на поддомене, а не на основном домене. На поддомене я создал пользовательский тип записей "Staff" (Сотрудники), а отдельные элементы в нем называются "Member" (Участник). Я заметил, что не могу использовать URL...

https://example.com/wp-json/wp/v2/posts

(WP REST API)

...для чтения этих элементов. В документации я обнаружил, что можно обращаться к ним через...

https://example.com/wp-json/wp/v2/staff

При использовании /staff отображаются основные поля записей, но не пользовательские группы полей. (Примечание: я использую плагин Custom Post Types от TotalPress.org.)

Как получить доступ к пользовательским полям конкретного сотрудника в его записи? Я могу получить доступ к конкретному сотруднику через:

https://example.com/wp-json/wp-v2/staff/?slug=john-smith

...но там нет пользовательских полей, которые я прикрепил к этой записи.

Как использовать REST API для получения пользовательских полей, прикрепленных к пользовательскому типу записей?

5
Комментарии

вы объявили, что они доступны через REST API при регистрации? В вашем вопросе нет кода

Tom J Nowell Tom J Nowell
13 сент. 2021 г. 00:39:30

@TomJNowell Я использую плагин Custom Post Types от TotalPress.org, что избавляет меня от необходимости писать код. Он занимается регистрацией. Я также понял, почему /staff не работал в API - это было связано с тем, как я его объявил. Я отредактирую этот пост по крайней мере в этой части. Просто не могу разобраться с пользовательскими полями.

Volomike Volomike
13 сент. 2021 г. 01:14:32

Я думал, вы использовали его, а затем отказались, судя по вашему вопросу. Поддержка сторонних плагинов не входит в тематику этого сайта. Это не место для получения помощи по плагину Custom Post Types.

Tom J Nowell Tom J Nowell
13 сент. 2021 г. 09:16:20

Стоит отметить, что канонический ответ на этот вопрос — убедиться, что постоянные ссылки сброшены, а у рассматриваемого CPT параметр show_in_rest установлен в true, но поскольку вы использовали плагин для создания своих типов записей, это решение вам недоступно. Тем не менее, пользовательские типы записей достаточно просты, и в интернете есть генераторы кода, которые напишут его за вас на основе введенных данных и отмеченных чекбоксов. Вам не нужен плагин для автоматической регистрации типов записей

Tom J Nowell Tom J Nowell
13 сент. 2021 г. 09:18:30

И вам нужно зарегистрировать метаданные, чтобы они отображались в REST API

Tom J Nowell Tom J Nowell
13 сент. 2021 г. 09:19:06
Все ответы на вопрос 1
3

Я нашел решение без кода. Я установил плагин Rest API Helper, и теперь он отображает пользовательские поля для указанного типа записи.

13 сент. 2021 г. 01:31:59
Комментарии

интересное определение "без кода", возможно, вы имели в виду "без написания какого-либо кода самостоятельно" :)

Mark Kaplun Mark Kaplun
13 сент. 2021 г. 05:17:37

имейте в виду, что плагин, похоже, не поддерживается. возможно, он будет работать корректно еще долгое время, но вы берете на себя определенный риск

Mark Kaplun Mark Kaplun
13 сент. 2021 г. 05:20:49

@MarkKaplun 'без кода, который я написал сам' -- да, вы правы. И спасибо за совет.

Volomike Volomike
16 сент. 2021 г. 21:05:31