Запрос данных плагиновAdvanced Custom Fields (ACF)
Advanced Custom Fields (ACF)
Подробнее в руководстве Работа с Advanced Custom Fields (ACF).
Примеры queries для взаимодействия с данными плагина Advanced Custom Fields (ACF).
Получение пользовательских полей ACF
Мы можем использовать мета-поля для запроса данных пользовательских полей ACF, независимо от их типа:
query GetPost($postId: ID!) {
post(by: { id: $postId }) {
id
title
# Базовые типы полей
text: metaValue(key: "text_field")
textarea: metaValue(key: "textarea_field")
select: metaValue(key: "select_field")
multiSelect: metaValue(key: "multi_select_field")
number: metaValue(key: "number_field")
# Поле даты
dateAsString: metaValue(key: "date_field")
dateYear: _strSubstr(string: $__dateAsString, offset: 0, length: 4)
dateMonth: _strSubstr(string: $__dateAsString, offset: 4, length: 2)
dateDay: _strSubstr(string: $__dateAsString, offset: 6, length: 2)
dateTime: _makeTime(year: $__dateYear, month: $__dateMonth, day: $__dateDay, hour: 0, minute: 0, second: 0)
date: _date(format: "Y-m-d", timestamp: $__dateTime)
}
}Если мета-значение является связью (например: запись, пользователь, таксономия и т.д.), мы можем использовать это значение для запроса соответствующей сущности типа Post, User, Taxonomy и т.д.:
query GetPostWithRelationships($postId: ID!) {
post(by: { id: $postId }) {
id
title
# Экспорт связи с записью
relationshipPostId: metaValue(key: "relationship_post_id")
@export(as: "relationshipPostId")
# Экспорт связи со списком записей
relationshipPostIds: metaValue(key: "relationship_post_ids")
@export(as: "relationshipPostIds")
}
}
query QueryPostRelationships @depends(on: "GetPostWithRelationships") {
# Запрос связи с записью
relationshipPost: post(by: { id: $relationshipPostId }) {
id
title
}
# Запрос связи со списком записей
relationshipPosts: posts(filter: { ids: $relationshipPostIds }) {
id
title
}
}Обновление пользовательских полей ACF
Мы можем использовать мета-мутации для обновления данных пользовательских полей ACF, передавая имена полей и значения, независимо от их типа:
mutation UpdatePost($postId: ID!) {
updatePost(
input: {
id: $postId
meta: {
text_field: ["New text value"],
textarea_field: ["New textarea value"],
select_field: ["New select value"],
multi_select_field: ["Choice 1", "Choice 2"],
number_field: [42],
date_field: ["20240320"],
}
}
) {
status
errors {
__typename
...on ErrorPayload {
message
}
}
post {
id
text: metaValue(key: "text_field")
textarea: metaValue(key: "textarea_field")
select: metaValue(key: "select_field")
multiSelect: metaValues(key: "multi_select_field")
number: metaValue(key: "number_field")
date: metaValue(key: "date_field")
}
}
}Prev