TextControl — это компонент для стандартного ввода текста (<input type=»text» ../>), который позволяет пользователи вводят и редактируют текст в однострочном графическом интерфейсе.

Пример:

При разработке блоков удобно таким образом задавать дополнительные атрибуты, например data-name, так же можно использовать для вывода текста (не стоит), но для таких целей лучше использоваться ReachText.

Пример использования:

block.json:

{
  "$schema": "https://schemas.wp.org/trunk/block.json",
  "apiVersion": 3,
  "name": "sample-block/sample-text-control",
  "version": "0.0.1",
  "title": "Sample Text Control",
  "category": "widgets",
  "icon": "smiley",
  "description": "Sample Text Control",
  "editorScript": "file:./index.js",
  "attributes": {
    "dataName": {
      "type": "string",
      "default": ""
    }
  }
}

edit.jsx:

export default function Edit({attributes, setAttributes}) {

    return ([
        <InspectorControls>
            <PanelBody>
                <TextControl
                    label="Data neme"
                    value={attributes.dataName}
                    onChange={(val) => setAttributes({dataName: val})}
                />
            </PanelBody>
        </InspectorControls>,
        <div>
            <a href="#" data-name={attributes.dataName}>Link text</a>
        </div>
        ,
    ]);
};

save.jsx:

export default function Save({attributes}) {

    return (
        <div>
            <a href="#" data-name={attributes.dataName}>Link text</a>
        </div>
    );
};

index.js:

const {registerBlockType} = wp.blocks;


import Edit from './edit';
import Save from './save';
import metadata from './block.json';


registerBlockType(metadata.name, {
    title: metadata.title,
    description: metadata.description,
    icon: metadata.icon,
    category: metadata.category,
    attributes: metadata.attributes,

    edit: Edit,

    save: Save,
});
}

Вид в редакторе

Так выглядит на фронте: