Ognj3n
Estoy tratando de sacar de la cola/darse de baja estilos que son innecesarios (WooCommerce, formulario de contacto 7) de todas las publicaciones/páginas de mi sitio web de wordpress.
Intentó oficial La forma de WooCommerce de deshabilitar estos estilos y secuencias de comandos adicionales, pero no los elimina, ya que los estilos aún están cargados en el código fuente y Google PageSpeed Insights todavía los muestra como renderizados; asi que:
add_filter( 'woocommerce_enqueue_styles', 'jk_dequeue_styles' );
function jk_dequeue_styles( $enqueue_styles ) {
unset( $enqueue_styles['woocommerce-general'] ); // Remove the gloss
unset( $enqueue_styles['woocommerce-layout'] ); // Remove the layout
unset( $enqueue_styles['woocommerce-smallscreen'] ); // Remove the smallscreen optimisation
return $enqueue_styles;
}
// Or just remove them all in one line
add_filter( 'woocommerce_enqueue_styles', '__return_false' );
en functions.php
no funciona También traté de eliminarlos así:
function remove_assets() {
wp_dequeue_style('wc-block-vendors-style-css');
wp_deregister_style('wc-block-vendors-style-css');
}
add_action( 'wp_print_styles', 'remove_assets', PHP_INT_MAX );
Apuntando a una identificación de estilo específica wc-block-vendors-style-css
y entorno PHP_INT_MAX
. Todavía no está eliminando ese estilo específico.
Notas:
Este functions.php
pertenece al tema secundario de un tema de WordPress personalizado, rehecho veinte veinte y el caché se ha borrado. Probé la mayoría de las respuestas aquí del StackOverflow de usuarios que tienen problemas similares, pero ninguna funcionó.
El soporte de Woocommerce está habilitado en el tema.
¿Cómo eliminar/cancelar el registro de estilos y scripts con WordPress 5.6 en 2021?
Según @Aliakseyenka Ihar: me probé a mí mismo, cuando agregué deregister
antes de wp_dequeue_style
– elimina el estilo del proveedor
function remove_assets() {
wp_deregister_style('wc-block-vendors-style');
wp_dequeue_style('wc-block-vendors-style');
}
add_action( 'wp_enqueue_scripts', 'remove_assets', 11);
O camino ninja
add_filter( 'wp_enqueue_scripts', 'jk_dequeue_styles', 99999 );
function jk_dequeue_styles( $enqueue_styles ) {
global $wp_styles;
unset ( $wp_styles->registered['wc-block-vendors-style'] );
}
Si su hoja de estilo está registrada y en cola correctamente, entonces…
function dequeue_css() {
wp_dequeue_style('wc-block-vendors-style');
wp_deregister_style('wc-block-vendors-style');
}
add_action('wp_enqueue_scripts','dequeue_css');
// add a priority if you need it
// add_action('wp_enqueue_scripts','dequeue_css',100);
O puedes probar de esta manera:
add_filter('style_loader_src', function($href){
if(strpos($href, "wc-block-vendors-style") !== false) {
return false;
}
return $href;
});
Descubrí que para eliminar esos estilos se requería la integración de Woocomerce en el tema activo.
add_theme_support( 'woocommerce' );
Esto resolvió mi problema.
Además de la respuesta proporcionada… Su respuesta oficial utiliza la función incorrecta. gist.github.com/woogists/…
– Howard E.
4 de enero de 2021 a las 10:49
@HowardE Ese fragmento es parte de la fuente de documentos de woocomerce que cuestioné, probé ese también, no funcionó. Todos los estilos y scripts de WooCommerce todavía están cargados
– Ognj3n
4 de enero de 2021 a las 10:53
la esencia dice
add_filter( 'woocommerce_enqueue_styles', '__return_empty_array' );
lo que pones arriba es__return_false
– Howard E.
4 de enero de 2021 a las 10:55
docs.woocommerce.com/document/disable-the-default-stylesheet/… Lee esto; tu sugerencia está ahí, lo intenté, no está funcionando …
– Ognj3n
4 de enero de 2021 a las 10:57
En este caso, debe asegurarse de que sus funciones se estén ejecutando realmente. Puede intentar descargar algo en error_log para validar que sus funciones se están activando.
– Howard E.
4 de enero de 2021 a las 10:59