如何将Block样式支持添加到Gutenberg的核心HTML块中?

时间:2020-05-08 作者:Radley Sustaire

Gutenberg中的HTML块可以指定如下样式:

// JS file, enqueued using the action "enqueue_block_editor_assets"
wp.blocks.registerBlockStyle( \'core/html\', {
    name: \'full-width-video\',
    label: \'Full Width Video\'
} );

resulting custom html block with styles

为了进行比较,我还将该样式应用于核心/预格式化。我在一篇帖子上为两个街区选择了它。

然而the class does not get added to the Custom HTML block:

<div class="wp-block-html">(html that I entered)</div>

<pre class="wp-block-preformatted is-style-full-width-video">(html that i entered)</pre>
我相信这是一个“支持”选项,它阻止了样式的应用,但我不知道如何为核心块编辑它。

有人知道我如何在核心HTML块上添加对样式的支持吗?

谢谢

1 个回复
SO网友:GeorgeP

块样式变体允许使用过滤器为现有块提供替代样式,如前所述here.

下面是一些使用服务器端函数(php)的示例。您可以在线添加css样式:

register_block_style(
    \'core/html\',
    array(
        \'name\'         => \'full-width-video\',
        \'label\'        => __( \'Full Width Video\' ),
        \'inline_style\' => \'.wp-block-html.is-style-full-width-video { width:100%; }\',
    )
);
或引用包含该类的排队样式表

wp_register_style( \'myguten-style\', get_template_directory_uri() . \'/custom-style.css\' );

// ...

register_block_style(
    \'core/html\',
    array(
        \'name\'         => \'full-width-video\',
        \'label\'        => __( \'Full Width Video\' ),
        \'style_handle\' => \'myguten-style\',
    )
);
register_block_style 应该挂在init 行动

相关推荐

如何在JavaScript中加载翻译?

我正在努力为我的简单插件加载JavaScript翻译。翻译适用于PHP,但不适用于JS。问题是什么,如何调试?我已经在我的插件方法中加载了文本域,这一切正常。我的文本域是instantsearch, 我的语言区域设置为hrload_plugin_textdomain(\'instantsearch\', FALSE, basename( dirname( __FILE__ ) ) . \'/languages/\'); // returns true var_dump(__(\'No result