diff --git a/packages/core-data/src/resolvers.js b/packages/core-data/src/resolvers.js index b2211421d0e8eb..2f477bcb721826 100644 --- a/packages/core-data/src/resolvers.js +++ b/packages/core-data/src/resolvers.js @@ -153,8 +153,24 @@ export function* getEntityRecords( kind, name, query = {} ) { ...query, context: 'edit', } ); - const records = yield apiFetch( { path } ); - yield receiveEntityRecords( kind, name, Object.values( records ), query ); + + let records = Object.values( yield apiFetch( { path } ) ); + // If we request fields but the result doesn't contain the fields, + // explicitely set these fields as "undefined" + // that way we consider the query "fullfilled". + if ( query._fields ) { + records = records.map( ( record ) => { + query._fields.split( ',' ).forEach( ( field ) => { + if ( ! record.hasOwnProperty( field ) ) { + record[ field ] = undefined; + } + } ); + + return record; + } ); + } + + yield receiveEntityRecords( kind, name, records, query ); } getEntityRecords.shouldInvalidate = ( action, kind, name ) => { diff --git a/packages/editor/src/components/page-attributes/parent.js b/packages/editor/src/components/page-attributes/parent.js index b2aa7b6579ced2..cb098fd08e1311 100644 --- a/packages/editor/src/components/page-attributes/parent.js +++ b/packages/editor/src/components/page-attributes/parent.js @@ -66,6 +66,7 @@ const applyWithSelect = withSelect( ( select ) => { parent_exclude: postId, orderby: 'menu_order', order: 'asc', + _fields: 'id,title,parent', }; return {