仅当使用模式时,Wordpress 才会将样式表加入队列

问题描述 投票:0回答:1

使用Wordpress 6.3块编辑器(Gutenberg)我们可以注册块模式。这些模式是预先配置的块集合。

add_action('init', function () {

    register_block_pattern(
        'my_test_pattern',
        array(
            'title' => 'My Test Pattern',
            "categories" => ['text'],
            'description' => 'Test',
            'content' => "<!-- wp:paragraph -->
            <p>Something</p>
            <!-- /wp:paragraph -->",
        )
    );

});

我们可以检查该模式是否已在整个站点上注册:

WP_Block_Patterns_Registry::get_instance()->is_registered("my_test_pattern")

但是有没有办法检查它何时被实际使用,以便我们可以在使用时将样式表放入页面上。

对于块,有一个名为

has_block("block-name")
的函数,但 has_pattern 没有类似的函数。

编辑/想法

我认为问题可能是,虽然块以其名称保存在 post_content 中,但模式并不与其包含的块一起存储在 post_content 中。

一个想法是创建一个自定义块。在 InspectorControl 中提供一个字段来提供自定义模式名称,当该块呈现它时,如果尚未排队,它会生成一个具有所提供模式名称的 css 文件。我确信这会起作用,但似乎有点过头了。

wordpress conditional-statements wordpress-gutenberg
1个回答
0
投票

鉴于块模式是块的集合,并且各个块都有自己的关联样式,也许您正在寻找的内容可以通过块主题来完成。这样,您可以在 HTML 模板文件中将所需的块模式声明为主题的一部分,并在块一起出现时通过 theme.json 更好地控制 CSS 样式。

另一种选择是,当您将块模式添加到帖子/页面时,将其转换为同步模式以前称为可重用块)。现在,同步模式有一个与之关联的唯一 ID,可用于查明它是否在帖子/页面中或包含自定义 CSS 样式来定位它。

© www.soinside.com 2019 - 2024. All rights reserved.