We can look into the wp_enqueue_global_styles() function, that calls
wp_should_load_separate_core_block_assets() and see it contains e.g. the should_load_separate_core_block_assets
filter but we can’t disable the global styles on the front-end, using this filter because of:
/*
* Global styles should be printed in the head when loading all styles combined.
* The footer should only be used to print global styles for classic themes with separate core assets enabled.
*
* See https://core.trac.wordpress.org/ticket/53494.
*/
if ( ( ! $separate_assets && doing_action( 'wp_footer' ) ) || ( $separate_assets && doing_action( 'wp_enqueue_scripts' ) ) ) {
return;
}
where it’s hooked in two places, either header or footer:
// Global styles can be enqueued in both the header and the footer.
// See https://core.trac.wordpress.org/ticket/53494.
add_action( 'wp_enqueue_scripts', 'wp_enqueue_global_styles' );
add_action( 'wp_footer', 'wp_enqueue_global_styles', 1 );
So ticket 53494 is also useful and the 5.8 dev notes.
For full-site-editing themes with separate block style loading on or off and classical themes with it off, one can dequeue it on the archives with:
add_action( 'wp_enqueue_scripts', function () {
is_archive () && wp_dequeue_style ( 'global-styles' );
}, 11 );
since it’s enqueued on wp_enqueue_scripts
hook with priority 10.
For classical themes with separate block style loading on:
add_action( 'wp_footer', function () {
is_archive () && wp_dequeue_style ( 'global-styles' );
}, 2 );
since it’s enqueued on wp_footer
hook with priority 1.
But we note that themes, patterns and other plugins might depend on this.