将 Bootstrap 按钮样式添加到 WordPress 中的默认 Gutenberg 按钮块
Add Bootstrap button styles to default Gutenberg Button block in WordPress
我想将 Bootstrap 框架中的默认按钮样式与 Gutenberg 的默认按钮块一起使用。
我找到了从 WordPress 中删除默认样式并添加一些自己的样式的解决方案。这是 link:https://www.billerickson.net/block-styles-in-gutenberg/
我正在使用 Bill Erickson 的代码删除默认样式并添加一个新样式。在我的例子中,.btn-primary
样式来自 Bootstrap:
wp.domReady( () => {
wp.blocks.unregisterBlockStyle( 'core/button', 'default' );
wp.blocks.unregisterBlockStyle( 'core/button', 'outline' );
wp.blocks.unregisterBlockStyle( 'core/button', 'squared' );
wp.blocks.registerBlockStyle( 'core/button', {
name: 'btn',
label: 'Default',
isDefault: true,
});
wp.blocks.registerBlockStyle( 'core/button', {
name: 'btn-primary',
label: 'Primary',
} );
} );
这里有两个问题:
- WordPress 以错误的方式添加 class
- 只是加了一个class但是Bootstrap至少需要两个
这是添加class后的按钮代码:
<div class="wp-block-button aligncenter is-style-btn-primary">
<a class="wp-block-button__link" href="#">Button</a>
</div>
如您所见,WordPress 在按钮周围添加了新的 class 两个 div。
并将 is-style-
添加到 class.
使用具有 Bootstrap 样式的按钮块。我需要这样的代码:
<div class="wp-block-button aligncenter is-style-btn-primary">
<a class="btn btn-primary" href="#">Button</a>
</div>
class 必须在 <a>
标签内,我还需要第二个 class .btn
。
有什么办法可以把这两个class加到<a>
标签里吗?
您可以安装此插件:
https://wordpress.org/plugins/wp-bootstrap-blocks/
或者阅读插件代码并创建自己的块,然后您还可以为按钮创建自己的自定义样式。
我想您会发现编写自己的按钮比覆盖现有组件更简单。如果你真的想覆盖核心按钮块,你可能需要应用适当的 block filters.
如果您正在寻找一个即时的解决方案,Advanced Bootstrap Blocks plugin may get you started, or you can install through the plugin directory 中按钮组件的来源。
(完全披露:我是这个插件的作者。)
解决这个问题的另一种方法是使用 SCSS @extend
首先注册将显示在按钮块编辑器中的块样式:
wp.domReady ( function() {
wp.blocks.unregisterBlockStyle( 'core/button', 'outline');
wp.blocks.unregisterBlockStyle( 'core/button', 'fill');
wp.blocks.registerBlockStyle( 'core/button', {
name: 'bootstrap-default',
label: 'Bootstrap Default',
isDefault: true
});
wp.blocks.registerBlockStyle( 'core/button', {
name: 'bootstrap-primary',
label: 'Bootstrap Primary',
});
wp.blocks.registerBlockStyle( 'core/button', {
name: 'bootstrap-success',
label: 'Bootstrap Success',
});
wp.blocks.registerBlockStyle( 'core/button', {
name: 'bootstrap-default-lg',
label: 'Bootstrap Default Large',
});
wp.blocks.registerBlockStyle( 'core/button', {
name: 'bootstrap-primary-lg',
label: 'Bootstrap Primary Large',
});
wp.blocks.registerBlockStyle( 'core/button', {
name: 'bootstrap-success-lg',
label: 'Bootstrap Success Large',
});
});
然后我创建了一个 _wordpress.scss,它包含并编译了每个块样式的规则以及它们扩展的 Bootstrap 规则:
.is-style-bootstrap-default > a {
@extend .btn;
@extend .btn-default;
}
.is-style-bootstrap-primary > a {
@extend .btn;
@extend .btn-primary;
}
.is-style-bootstrap-success > a {
@extend .btn;
@extend .btn-success;
}
.is-style-bootstrap-default-lg > a {
@extend .btn;
@extend .btn-default;
@extend .btn-lg;
}
.is-style-bootstrap-primary-lg > a {
@extend .btn;
@extend .btn-primary;
@extend .btn-lg;
}
.is-style-bootstrap-success-lg > a {
@extend .btn;
@extend .btn-success;
@extend .btn-lg;
}
我想将 Bootstrap 框架中的默认按钮样式与 Gutenberg 的默认按钮块一起使用。
我找到了从 WordPress 中删除默认样式并添加一些自己的样式的解决方案。这是 link:https://www.billerickson.net/block-styles-in-gutenberg/
我正在使用 Bill Erickson 的代码删除默认样式并添加一个新样式。在我的例子中,.btn-primary
样式来自 Bootstrap:
wp.domReady( () => {
wp.blocks.unregisterBlockStyle( 'core/button', 'default' );
wp.blocks.unregisterBlockStyle( 'core/button', 'outline' );
wp.blocks.unregisterBlockStyle( 'core/button', 'squared' );
wp.blocks.registerBlockStyle( 'core/button', {
name: 'btn',
label: 'Default',
isDefault: true,
});
wp.blocks.registerBlockStyle( 'core/button', {
name: 'btn-primary',
label: 'Primary',
} );
} );
这里有两个问题:
- WordPress 以错误的方式添加 class
- 只是加了一个class但是Bootstrap至少需要两个
这是添加class后的按钮代码:
<div class="wp-block-button aligncenter is-style-btn-primary">
<a class="wp-block-button__link" href="#">Button</a>
</div>
如您所见,WordPress 在按钮周围添加了新的 class 两个 div。
并将 is-style-
添加到 class.
使用具有 Bootstrap 样式的按钮块。我需要这样的代码:
<div class="wp-block-button aligncenter is-style-btn-primary">
<a class="btn btn-primary" href="#">Button</a>
</div>
class 必须在 <a>
标签内,我还需要第二个 class .btn
。
有什么办法可以把这两个class加到<a>
标签里吗?
您可以安装此插件: https://wordpress.org/plugins/wp-bootstrap-blocks/
或者阅读插件代码并创建自己的块,然后您还可以为按钮创建自己的自定义样式。
我想您会发现编写自己的按钮比覆盖现有组件更简单。如果你真的想覆盖核心按钮块,你可能需要应用适当的 block filters.
如果您正在寻找一个即时的解决方案,Advanced Bootstrap Blocks plugin may get you started, or you can install through the plugin directory 中按钮组件的来源。
(完全披露:我是这个插件的作者。)
解决这个问题的另一种方法是使用 SCSS @extend
首先注册将显示在按钮块编辑器中的块样式:
wp.domReady ( function() {
wp.blocks.unregisterBlockStyle( 'core/button', 'outline');
wp.blocks.unregisterBlockStyle( 'core/button', 'fill');
wp.blocks.registerBlockStyle( 'core/button', {
name: 'bootstrap-default',
label: 'Bootstrap Default',
isDefault: true
});
wp.blocks.registerBlockStyle( 'core/button', {
name: 'bootstrap-primary',
label: 'Bootstrap Primary',
});
wp.blocks.registerBlockStyle( 'core/button', {
name: 'bootstrap-success',
label: 'Bootstrap Success',
});
wp.blocks.registerBlockStyle( 'core/button', {
name: 'bootstrap-default-lg',
label: 'Bootstrap Default Large',
});
wp.blocks.registerBlockStyle( 'core/button', {
name: 'bootstrap-primary-lg',
label: 'Bootstrap Primary Large',
});
wp.blocks.registerBlockStyle( 'core/button', {
name: 'bootstrap-success-lg',
label: 'Bootstrap Success Large',
});
});
然后我创建了一个 _wordpress.scss,它包含并编译了每个块样式的规则以及它们扩展的 Bootstrap 规则:
.is-style-bootstrap-default > a {
@extend .btn;
@extend .btn-default;
}
.is-style-bootstrap-primary > a {
@extend .btn;
@extend .btn-primary;
}
.is-style-bootstrap-success > a {
@extend .btn;
@extend .btn-success;
}
.is-style-bootstrap-default-lg > a {
@extend .btn;
@extend .btn-default;
@extend .btn-lg;
}
.is-style-bootstrap-primary-lg > a {
@extend .btn;
@extend .btn-primary;
@extend .btn-lg;
}
.is-style-bootstrap-success-lg > a {
@extend .btn;
@extend .btn-success;
@extend .btn-lg;
}