Отображение списка пользовательских типов записей в пользовательском блоке Wordpress Gutenberg - PullRequest
0 голосов
/ 17 декабря 2018

Я пытаюсь разрешить пользователям моего плагина / темы Wordpress, который использует пользовательский тип публикации для обработки продуктов, создать блок, отображающий сводку одной из этих пользовательских публикаций.Я пытаюсь добиться этого, создавая собственный блок в своем плагине на основе официального руководства .На бэкэнде Гутенберга я хотел бы просто отобразить поле выбора со всеми пользовательскими сообщениями в качестве параметров, но я открыт для предложений.

Я попытался прочитать, что я могу передать getEntityRecords функция в файле javascript блока, но документация кажется очень скудной.Если бы кто-то мог указать мне правильное направление, я был бы очень благодарен.Я также попытался установить 'taxonomy' вместо 'postType', но это тоже не сработало.Без хороших документов по API трудно определить возможные параметры и параметры.

Вот (часть) мой код.Я хотел бы знать возможные параметры для getEntityRecords в строке 3.

edit: withSelect( function( select ) {
    // setting postType to 'product' does not work for me here
    var pages = select('core').getEntityRecords('postType', 'page', { per_page: 10 });
    return {
        posts: pages
    };
} )( function( props ) {
    if ( ! props.posts ) {
        return "Loading...";
    }

    if ( props.posts.length === 0 ) {
        return "No posts";
    }
    var className = props.className;
    var post = props.posts[ 0 ];

    var options = [];
    for (var i = 0; i < props.posts.length; i++) {
        var option = el(
            'option',
            { value: props.posts[i].id },
            props.posts[i].title.rendered
        );
        options.push(option);
    }

    var select = el(
        'select',
        { className: className },
        options
    );

    return select;
} ),

1 Ответ

0 голосов
/ 10 января 2019

Если у вас возникла та же проблема, что и у меня: при объявлении пользовательского типа записи вы должны иметь 'show_in_rest' => true,, поскольку блоки основаны на restAPI;) Надеюсь, это поможет

...