Какие параметры запроса доступны для getEntityRecords в Gutenberg?

10 февр. 2019 г., 14:34:06
Просмотры: 18.1K
Голосов: 12

Я работаю над плагином, который определяет пользовательский блок для Gutenberg/Block Editor. Блок отображает поле select с записями. При выборе записи я создаю HTML с некоторыми полями выбранной записи, такими как заголовок, дата и т.д.

Когда я делаю запрос к записям в методе edit, мой код корректно выводит список страниц (в моем случае это пользовательский тип записи product), но произвольные поля, которые есть у этого типа записи, не включаются.

var pages = select('core').getEntityRecords('postType', 'product', { per_page: -1 });

Я пытаюсь найти документацию по параметрам запроса getEntityRecords, но кажется, её нет. Можно ли включить произвольные поля в запрос? Казалось бы, это должно быть объяснено на https://wordpress.org/gutenberg/handbook/designers-developers/developers/data/data-core/#getentityrecords

Единственная другая идея: когда блок сохраняется ("во время" метода save), возможно ли сделать еще один запрос, который просто выбирает одну запись по ID и получает её данные, возможно, включая произвольные поля? Похоже, я не могу делать запросы во время сохранения.

0
Все ответы на вопрос 2
0
17

Если вы посмотрите исходный код функции getEntityRecords, то увидите, что библиотека core/data создает сущности с использованием WordPress API в файле entities.js.

Таким образом, вы можете использовать любые параметры, доступные в REST API. Вот доступные опции для записей (posts):

context
page
per_page
search
after
author
author_exclude
before
exclude
include
offset
order
orderby
slug
status
categories
categories_exclude
tags
tags_exclude
sticky
15 янв. 2020 г. 06:49:39
0

Документация по Гутенбергу еще не завершена, но есть некоторые незавершенные коммиты в официальном репозитории Гутенберга. Это может помочь: https://github.com/WordPress/gutenberg/blob/b7ad77d15f32ca234ff2f3df4994e47a5cf2e6d7/packages/editor/src/components/page-attributes/README.md

[...]
    var query = {
            per_page: -1,
            exclude: postId,
            parent_exclude: postId,
            orderby: 'menu_order',
            order: 'asc',
            status: 'publish,future,draft,pending,private',
        };
        return {
            parentItems: isHierarchical ?
                selectCore.getEntityRecords( 'postType', postTypeSlug, query ) :
                []
        };
[...]
7 мар. 2019 г. 12:49:14