我正试图将摘录作为占位符添加到古腾堡提要栏的描述字段中。问题是,当没有手动添加的摘录时,占位符将为空。
有没有办法:
获取自动生成的摘录把这一段放在;“更多块”;(何时使用)如果以上都没有,如何在不检索完整内容的情况下选择第一个块/段落这是我的withSelect代码:
withSelect( function( select, props ) {
return {
metaValue: select( \'core/editor\' ).getEditedPostAttribute( \'meta\' )[ props.metaKey ],
metaExcerpt : select( \'core/editor\' ).getEditedPostAttribute( \'excerpt\' ),
metaContent : select( \'core/editor\' ).getEditedPostAttribute( \'content\' ),
}
} ) )( function( props ) {
return el( TextareaControl, {
label: props.title,
value: props.metaValue,
placeholder: props.metaExcerpt ? (props.metaExcerpt) : (props.metaContent),
help: props.metaExcerpt ? (\'\') : (\'There was no excerpt found\'),
onChange: function( content ) {
props.setMetaValue ( content );
},
});
}
);
最合适的回答,由SO网友:Sally CJ 整理而成
获取自动生成的摘录
默认情况下,REST API始终包含自动生成的摘录,因此请尝试getEntityRecord()
像这样:
但请注意,如果用户编辑了实际摘录(即设置侧栏中的“摘录”面板,而不是您的metaExcerpt
值),然后currentExcerpt
还将使用用户刚刚编辑的摘录。
withSelect( function( select, props ) {
const _post = select( \'core/editor\' ).getCurrentPost();
const post = select( \'core\' ).getEntityRecord( \'postType\', _post.type, _post.id );
return {
metaValue: select( \'core/editor\' ).getEditedPostAttribute( \'meta\' )[ props.metaKey ],
metaExcerpt : select( \'core/editor\' ).getEditedPostAttribute( \'excerpt\' ),
metaContent : select( \'core/editor\' ).getEditedPostAttribute( \'content\' ),
currentExcerpt : post ? post.excerpt.rendered : \'\',
};
} ... your code.
然后使用
TextareaControl
, 使用
placeholder: props.metaExcerpt || props.currentExcerpt
.