gpt4 book ai didi

wordpress - 在自定义 block 中需要特定的核心 block 样式

转载 作者:行者123 更新时间:2023-12-05 05:46:27 25 4
gpt4 key购买 nike

我创建了一个自定义 block ,它使用与核心 Table block 相同的类名/结构在表中输出一些特定数据。

通常所有 CSS 都加载到页面上,因此我的 block 将继承主题的默认表格样式。

使用新的 WP 2022 主题时,它使用 add_filter( 'should_load_separate_core_block_assets', '__return_true' ),WordPress 只加载页面上 block 的 CSS,这意味着除非有表格在页面上,我的 block 不适用于主题的其余部分。

我一直在四处寻找,但似乎没有办法将特定 block 中的样式排入队列。

我正在像这样注册我的 block 样式:

wp_register_style(
'my-block-style',
MY_PLUGIN_URL.'/blocks/manage-sessions/style.css',
array(''),
'1.0.1'
);

register_block_type(
'my-plugin/active-logins',
array(
'style' => 'my-block-style',
'editor_style' => 'my-block-editor-style',
'editor_script' => 'my-block-script',
'render_callback' => array($this, 'render_active_logins')
)
);

在我的 wp_register_style 中,我尝试在数组中添加一些不同的依赖项,但似乎无法要求特定 block 的样式。

有没有人有这方面的经验?

根据下面的评论,我已将其添加到我的 block render_callback 中:

if( function_exists('wp_should_load_separate_core_block_assets') ) {
if( wp_should_load_separate_core_block_assets() === true ) {

$handle = 'wp-block-table';
$core_styles = file_get_contents( includes_url( "/blocks/table/style.min.css" ) );
if( !is_rtl() ) {
$theme_styles = file_get_contents( includes_url( "/blocks/table/theme.min.css" ) );
} else {
$theme_styles = file_get_contents( includes_url( "/blocks/table/theme-rtl.min.css" ) );
}

$style_tag = "<style>$core_styles $theme_styles</style>";

}
}

这似乎适用于默认的 2022 主题,但我不确定它是否适用于其他主题,因为我只是获取核心 WP CSS。无法保证实际主题的文件夹结构,因此很难以这种方式手动获取 CSS 而无法将 block 识别为依赖项。

最佳答案

如果 should_load_separate_core_block_assets 过滤器为 true,您似乎可以添加 table 或其他核心 block 样式作为依赖项。根据我的测试,以下工作:

$my_block_style_deps = array();

if( function_exists('wp_should_load_separate_core_block_assets') ) {
if( wp_should_load_separate_core_block_assets() === true ) {
$my_block_style_deps[] = "wp-block-table";
}
}

wp_register_style(
'my-block-style',
MY_PLUGIN_URL.'/blocks/manage-sessions/style.css',
$my_block_style_deps,
'1.0.1'
);

关于wordpress - 在自定义 block 中需要特定的核心 block 样式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71185556/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com