Запрос данных WordPressБлоки
Блоки
Подробнее в руководстве Работа с блоками (Gutenberg).
Это примеры queries для получения данных блоков.
Получение блоков в произвольной записи через тип Block
Получение данных для всех блоков в записи:
{
post(by: { id: 19 }) {
blocks {
...BlockData
}
}
}
fragment BlockData on Block {
name
attributes
# innerHTML
contentSource
innerBlocks {
name
attributes
# innerHTML
contentSource
innerBlocks {
name
attributes
# innerHTML
contentSource
innerBlocks {
name
attributes
# innerHTML
contentSource
innerBlocks {
name
attributes
# innerHTML
contentSource
innerBlocks {
name
attributes
# innerHTML
contentSource
innerBlocks {
name
attributes
# innerHTML
contentSource
innerBlocks {
name
attributes
# innerHTML
contentSource
}
}
}
}
}
}
}
}Получение только блоков определённых типов:
{
post(by: { id: 19 }) {
blocks(
filterBy: {
include: [
"core/heading",
"core/paragraph"
]
}
) {
...BlockData
}
}
}
fragment BlockData on Block {
name
attributes
# innerHTML
contentSource
innerBlocks {
name
attributes
# innerHTML
contentSource
innerBlocks {
name
attributes
# innerHTML
contentSource
innerBlocks {
name
attributes
# innerHTML
contentSource
innerBlocks {
name
attributes
# innerHTML
contentSource
innerBlocks {
name
attributes
# innerHTML
contentSource
innerBlocks {
name
attributes
# innerHTML
contentSource
innerBlocks {
name
attributes
# innerHTML
contentSource
}
}
}
}
}
}
}
}Исключение блоков:
{
post(by: { id: 19 }) {
blocks(
filterBy: {
exclude: [
"core/heading",
"core/paragraph"
]
}
) {
...BlockData
}
}
}
fragment BlockData on Block {
name
attributes
# innerHTML
contentSource
innerBlocks {
name
attributes
# innerHTML
contentSource
innerBlocks {
name
attributes
# innerHTML
contentSource
innerBlocks {
name
attributes
# innerHTML
contentSource
innerBlocks {
name
attributes
# innerHTML
contentSource
innerBlocks {
name
attributes
# innerHTML
contentSource
innerBlocks {
name
attributes
# innerHTML
contentSource
innerBlocks {
name
attributes
# innerHTML
contentSource
}
}
}
}
}
}
}
}Получение данных блоков в произвольной записи через тип JSONObject
Получение данных для всех блоков в записи:
{
posts(by: { id: 19 }) {
blockDataItems
}
}Получение только блоков определённых типов:
{
posts(by: { id: 19 }) {
blockDataItems(
filterBy: {
include: [
"core/heading",
"core/paragraph"
]
}
)
}
}Исключение блоков:
{
posts(by: { id: 19 }) {
blockDataItems(
filterBy: {
exclude: [
"core/heading",
"core/paragraph"
]
}
)
}
}Получение «плоских» данных блоков в произвольной записи
Поле blockFlattenedDataItems выравнивает иерархию блоков, содержащихся в произвольной записи, до одного уровня. При этом фильтрация по типу блока также будет включать вложенные блоки, чей родительский блок исключён.
Получение данных для всех блоков в записи:
{
posts(by: { id: 19 }) {
blockFlattenedDataItems
}
}Получение только блоков определённых типов:
{
posts(by: { id: 19 }) {
blockFlattenedDataItems(
filterBy: {
include: [
"core/heading",
"core/paragraph",
"core/columns",
"core/column"
]
}
)
}
}Next