古腾堡块编辑器匹配管理样式和前端样式

时间:2019-05-28 作者:Jon

我正在创建一个简单的主题和一些自定义块。然而,我不知道如何在编辑器和前端视觉上使我的块看起来相同。

编辑器中通过以下方式应用了大量样式:load-styles.php. 我不知道这些是什么?

让编辑器样式与前端匹配的最佳方法是什么?我是否必须加载新样式表并覆盖所有这些加载样式。php样式?把它们关掉?我现在是否将所有CSS加载到前端和管理员?其他想法?

谢谢

<小时>

EDIT

我知道如何在创建块时加载样式,但我想覆盖与特定块没有真正关联的非常通用的样式。例如,编辑器中有一些样式可以添加字体样式和其他内容。我想我需要一种加载通用样式表的方法来覆盖加载样式的内容。php正在添加。

1 个回复
SO网友:WebElaine

编辑器本身没有太多的可视样式;更重要的是确保编辑器组件本身的一致性,比如按钮和信息面板。

你应该在需要的地方应用样式。通常,大多数CSS都应该放在一个两端都排队的文件中,即前端和编辑器。大多数情况下,您还需要一个仅用于编辑的样式表,用于您想要的任何突出显示等,该样式表应显示为有人正在编辑,但不应显示在前端。最后,您可以拥有仅影响前端的样式。

有几种方法可以将这3个单独的样式表排队。下面是create guten block如何做到这一点的,当你注册你的块类型时,会稍微修改一下,因为他们的代码在插件中,而你的代码在主题中,这只是CSS部分:

<?php
add_action(\'init\', \'enqueue_block_assets\');
function enqueue_block_assets() {
    // Register styles to both front and back end
    wp_register_style(\'blockname-both\', get_template_directory_uri() . \'/name-of-stylesheet-for-both.css\', array(\'wp-editor\'), null);
    // Register Editor-only styles with a dependency to come after wp-edit-blocks
    wp_register_style(\'blockname-editor\', get_template_directory_uri() . \'/name-of-stylesheet-for-editor-only.css\', array(\'wp-edit-blocks\'), null);
    register_block_type(
        \'namespace/name-of-block\', array(
            // "style" gets enqueued in both front end and Editor
            \'style\' => \'name-of-stylesheet-for-both.css\',
            // "editor_style" only gets enqueued in the Editor
            \'editor_style\' => \'name-of-stylesheet-for-editor-only.css\',
        )
    );
?>
基本上,您要做的只是在特定需要的地方对样式进行排队,以尽量减少在任何给定页面上加载的代码量,无论是在前端还是后端。

相关推荐

将CSS类预置为自定义块/模板

我正在尝试(&A);正在学习为Gutenberg构建自定义块/模板,并希望为某些特定块“预设”CSS类。是否可以按如下方式添加?参考:[模板和块][1]例如,为其中一个标题定义了CSS类blockHeadStyle: function myplugin_register_book_post_type() { $args = array( \'public\' => true, \'label\' => \'Books\',&#x