Гутенберг - содержимое блока RichText обернуто в нежелательные теги <p> - PullRequest
0 голосов
/ 02 февраля 2020

Пытаясь использовать (и понимать) Гутенберга для создания пользовательских блоков для моей темы WordPress, я столкнулся с проблемой, с которой не мог разобраться должным образом.

Я создал пользовательский блок, содержащий только RichText элемент, значение которого я пытался вывести как тег <label>. Проблема: <label> обернут внутри <p> тегов.

Копаясь в нем, я обнаружил, что это связано с фильтром wpautop и что существует обходной путь . Но я также читал, что удаление этого фильтра не было хорошей идеей, и, поскольку он кажется ошибкой, а не предполагаемым поведением, мне не нравится идея обходного пути, которое может испортить ситуацию в будущем.

Итак, мой вопрос состоит из двух частей: Безопасно ли удалять wpautop, чтобы избежать нежелательных тегов <p>? и Есть ли что-то еще, что я мог бы сделать (возможно, в моем блоке edit и save функций), чтобы исправить это?


Вот соответствующие фрагменты кода (я не использую JSX):

атрибуты:

title: {
    type: 'string',
    default: '',
}

функция edit ():

return [
    wp.element.createElement(wp.blockEditor.RichText, {
        tagName: 'p',
        className: props.className,
        placeholder: props.attributes.placeholder,
        keepPlaceholderOnFocus: true,
        value: props.attributes.title,
        onChange: value => props.setAttributes({
            title: value
        })
    })
]

функция save ():

return wp.element.createElement(wp.blockEditor.RichText.Content, {
    tagName: 'label',
    value: props.attributes.title
});

Который должен вывести <label>MyTitle</label>, и вместо этого я получу <p><label>Message</label></p>

...