我知道这不会让你快乐,但是—除非复制相关UI组件并对其进行编辑(以便允许HTML字符串),然后改用它—您无法阻止HTML被转义。我很确定你知道why 是否会/应该转义…:-)
但是,如果您只想让一个可单击的链接成为“帮助”文本,或者让它具有一些HTML,那么您可以传递WPElement
作为help
值:
const el = wp.element.createElement;
el( ToggleControl, {
label: \'Toggle\',
help: el( \'a\', { href: \'https://example.com\' }, \'This should work..\' ),
...
} );
如果您确实必须传递HTML字符串,那么可以使用
dangerouslySetInnerHTML
属性/属性。但顾名思义,这很危险,因此请确保您的HTML尽可能安全。
下面是一个例子:
const el = wp.element.createElement;
const html = ( html ) => { return { __html: html } };
el( ToggleControl, {
label: \'Toggle\',
// This outputs: <span><a href="#">Foo</a> Bar</span>
help: el( \'span\', {
dangerouslySetInnerHTML: html( \'<a href="#">Foo</a> Bar\' )
} ),
...
} );
或者在古腾堡,你可以使用
wp.element.RawHTML()
(将生成的元素放入
div
):
const el = wp.element.createElement;
const htmlToElem = ( html ) => wp.element.RawHTML( { children: html } );
el( ToggleControl, {
label: \'Toggle\',
// This outputs: <div><a href="#">Foo</a> Bar</div>
help: htmlToElem( \'<a href="#">Foo</a> Bar\' ),
...
} );
无论如何,如何将HTML从PHP传递到上面的JS/GB脚本将取决于您。但基本上,您可以使用
wp_localize_script()
定义要在脚本中使用的HTML列表。