我试图找出如何只对前端实际使用的块使用css。在我当前的设置中,所有内容都捆绑到我的build/frontend.css
文件,所以只需使用多个块中的一个就可以加载所有css,因为它都在构建frontend.css
文件但如果我只使用一个hero块,我只希望在前端加载hero css,而不是整个css文件。
下面是我的文件夹结构的基本概念
build
frontend.css
frontend.js
src
index.js
frontend.css
frontend.js
hero
-index.js
-index.css
callToAction
-index.js
-index.css
index.php
在我的php文件中:
// only load the frontend css and js if there is a block using it
add_filter( \'should_load_separate_core_block_assets\', \'__return_true\' );
add_action(\'init\', \'custom_register_gutenberg_blocks\');
function custom_register_gutenberg_blocks() {
// register scripts - backend
wp_register_script(\'custom-blocks-editor-scripts\',
plugins_url(\'build/index.js\', __FILE__),
array(\'wp-blocks\', \'wp-i18n\', \'wp-editor\'),
filemtime( plugin_dir_path( __FILE__ ) . \'build/index.js\') // version
);
// register scripts - frontend
wp_register_script(\'custom-blocks-frontend-scripts\',
plugins_url(\'build/frontend.js\', __FILE__),
array(\'wp-blocks\', \'wp-i18n\', \'wp-editor\'),
);
// register styles - backend
wp_register_style(\'custom-blocks-editor-style\',
plugins_url(\'build/index.css\', __FILE__),
array(\'wp-edit-blocks\'),
);
// register styles - frontend
wp_register_style(\'custom-blocks-frontend-styles\',
plugins_url(\'build/frontend.css\', __FILE__),
);
// Allow inlining small stylesheets on the frontend if possible.
wp_style_add_data( \'custpm-blocks-frontend-styles\', \'path\', dirname( __FILE__ ) . \'/frontend.css\' );
register_block_type(\'custom/hero\', array(
\'editor_script\' => \'custom-blocks-editor-scripts\',
\'editor_style\' => \'custom-blocks-editor-style\',
\'style\' => \'custom-blocks-frontend-styles\',
\'script\' => \'custom-blocks-frontend-scripts\',
\'render_callback\' => \'custom_hero\'
));
function custom_hero($attributes) {
ob_start(); ?>
<div>
Content output here
</div>
<?php return ob_get_clean();
}
}
然后,例如,在我的hero块中,我从同一文件夹加载css文件
src/hero/index.js
import "./index.css";
import { registerBlockType } from "@wordpress/blocks";
registerBlockType("custom/hero", {
// edit: (props) => {}
// save: (props) => {}
});
因此,js文件只是从其特定的块文件夹加载css,但在php中,我称之为前端。构建文件夹中的css文件。
SO网友:stokesman
To g级et型 sep一r一t型e f我les for e一ch类 block you\'ll need t型o <一 h类ref=“”h类t型t型ps://developer.wordpress.org级/block-ed我t型or/reference-g级u我des/p一ck一g级es/p一ck一g级es-scr我pt型s/#prov我de-your-own-webp一ck-conf我g级“” rel=“”nofollow noreferrer“”>br我ng级 your own webp一ck conf我g级一>
个A.;
One 一s s我m级ple 一s t型h类我s sh类ould work:
个A.;
const型 def一ult型Conf我g级 = requ我re(\'@wordpress/scr我pt型s/conf我g级/webp一ck.conf我g级\');个A.;个A.;m级odule.ex个port型s = {个A.; ...def一ult型Conf我g级,个A.; ent型ry: {个A.; \'h类ero\': \'./src/h类ero\',个A.; \'c一ll-t型o-一ct型我on\': \'./src/c一llToA.ct型我on\',个A.; },个A.;};个A.;
个A.;
Ry一n Welch类er h类一s <一 h类ref=“”h类t型t型ps://g级我t型h类ub.com级/ry一nwelch类er/t型w我t型ch类/t型ree/t型runk/plug级我ns/m级ult型我ple-blocks“” rel=“”nofollow noreferrer“”>一n ex个一m级ple repo一> 一nd 一 <一 h类ref=“”h类t型t型ps://www.yout型ube.com级/w一t型ch类?v=lw十、十、ckW3.dT0&一m级p;t型=2.1.8.6.s“” rel=“”nofollow noreferrer“”>v我deo w一lk-t型h类roug级h类 of 我t型s cre一t型我on一> (t型h类一t型 l我nk 我s t型o t型h类e p一rt型 一bout型 cre一t型我ng级 t型h类e cust型om级 webp一ck conf我g级).
个A.;
UPDA.TE: 我t型 t型urns out型 我t型 我s poss我ble t型o g级et型 sep一r一t型e bundles w我t型h类out型 一 cust型om级 webp一ck conf我g级 but型 (w我t型h类 v1.9.1..0 of @wordpress/scr我pt型s
) 我t型 w我ll only work 我f t型h类e ent型ry po我nt型s h类一ve d我fferent型 f我len一m级es. Th类一t型 我s, 我t型 w我ll f一我l t型o 我nclude 一 f我le 我f 一not型h类er h类一s t型h类e s一m级e n一m级e. For 我nst型一nce, t型h类我s would bu我ld but型 foo/我ndex个.js
would be left型 out型:
个A.;
"型;bu我ld:cust型om级"型;: "型;wp-scr我pt型s bu我ld foo/我ndex个.js b一r/我ndex个.js"型;个A.