From 13af638f43ad9875f0825984216e95fbd1283a39 Mon Sep 17 00:00:00 2001 From: Herb Miller Date: Thu, 2 Jul 2020 06:50:21 +0100 Subject: [PATCH 1/2] Issue #13618 - only request three fields: id, title and parent --- packages/editor/src/components/page-attributes/parent.js | 1 + 1 file changed, 1 insertion(+) 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 { From d9f48e96c6f05f68ae02217ce7602e62ccb6ee01 Mon Sep 17 00:00:00 2001 From: Riad Benguella Date: Wed, 26 Aug 2020 12:16:22 +0100 Subject: [PATCH 2/2] Fix parent selector for post types without title --- packages/core-data/src/resolvers.js | 20 ++++++++++++++++++-- 1 file changed, 18 insertions(+), 2 deletions(-) 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 ) => {