Гутенберг предоставляет editor.Autocomplete.completers
фильтр для расширения и переопределения списка автозаполнений, используемых блоками.
Autocomplete
Компонент найден в @wordpress/editor
применяется этот фильтр. @wordpress/components
Пакет обеспечивает основополагающий Autocomplete
компонент , который не применяется таким фильтром, но блоки обычно должны использовать компонент предоставленный @wordpress/editor
.
пример
Вот пример использования editor.Autocomplete.completers
фильтра для добавления аббревиатуры. Вы можете найти полную документацию для интерфейса автозаполнения с Autocomplete
компонентом в @wordpress/components
пакете.ES5ESNext
// Our completer
var acronymCompleter = {
name: 'acronyms',
triggerPrefix: '::',
options: [
{ letters: 'FYI', expansion: 'For Your Information' },
{ letters: 'AFAIK', expansion: 'As Far As I Know' },
{ letters: 'IIRC', expansion: 'If I Recall Correctly' },
],
getOptionKeywords: function( abbr ) {
var expansionWords = abbr.expansion.split( /\s+/ );
return [ abbr.letters ].concat( expansionWords );
},
getOptionLabel: function( acronym ) {
return acronym.letters;
},
getOptionCompletion: function( abbr ) {
return wp.element.createElement(
'abbr',
{ title: abbr.expansion },
abbr.letters
);
},
};
// Our filter function
function appendAcronymCompleter( completers, blockName ) {
return blockName === 'my-plugin/foo' ?
completers.concat( acronymCompleter ) :
completers;
}
// Adding the filter
wp.hooks.addFilter(
'editor.Autocomplete.completers',
'my-plugin/autocompleters/acronyms',
appendAcronymCompleter
);