WordPress Gutenberg: динамический блок не загружает список сообщений - PullRequest
0 голосов
/ 22 января 2019

В руководстве " Создание динамических блоков " объясняется, что для загрузки списка последних сообщений в блоке Гутенберга используется следующий код:

var el = wp.element.createElement,
    registerBlockType = wp.blocks.registerBlockType,
    withSelect = wp.data.withSelect;

registerBlockType( 'my-plugin/latest-post', {
    ...

    edit: withSelect( function( select ) {
        return {
            posts: select( 'core' ).getEntityRecords( 'postType', 'post' )
        };
    } )( function( props ) {

        if ( ! props.posts ) {
            return "Loading...";
        }

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

        return el(
            'a',
            { className: className, href: post.link },
            post.title.rendered
        );
    } ),

    ...
} );

I 'мы пробовали этот код, но блок всегда показывает «Загрузка ...».

Кажется, что props.posts всегда null или undefined и что запрос никогда ничего не возвращает.

Очевидно, что при использовании встроенного блока «Последние статьи» WordPress все работает хорошо, и список загружается правильно.

При проверке кода встроенного блока кажется, что используетсяточно такой же селектор (также с некоторыми другими параметрами, поступающими из конфигурации самого блока):

...

export default withSelect( ( select, props ) => {
    const { postsToShow, order, orderBy, categories } = props.attributes;
    const { getEntityRecords } = select( 'core' );
    const latestPostsQuery = pickBy( {
        categories,
        order,
        orderby: orderBy,
        per_page: postsToShow,
    }, ( value ) => ! isUndefined( value ) );
    return {
        latestPosts: getEntityRecords( 'postType', 'post', latestPostsQuery ),
    };
} )( LatestPostsEdit );

Есть идеи о том, что может происходить?

Как я могу отладить проблему?

...