wp_dequeue_style no funciona - Solución para eliminar fuentes en WordPress

16 sept 2015, 20:23:02
Vistas: 13.6K
Votos: 11

Estoy intentando eliminar una fuente que un plugin carga en el frontend, ya que yo ya la estoy cargando y el plugin carga todos los estilos de la fuente que no necesito.

Este es mi código:

// Eliminar Open Sans
function custom_dequeue() {
    wp_dequeue_style('et-gf-open-sans');
}

add_action('wp_enqueue_scripts', 'custom_dequeue');

// También he probado
add_action('wp_print_styles', 'custom_dequeue', 9999);

// También enganchando a: wp_footer, wp_head, wp_print_scripts,
// todos con alta prioridad y prioridad por defecto sin éxito

Todo lo que esto hace es mover el código del head a justo antes de la etiqueta de cierre </body>.

He contactado al autor del plugin y la respuesta fue el código que ya probé. Estoy esperando otra respuesta.

Además, estoy seguro de que estoy usando el nombre correcto del handle. Modifiqué la URL del código para poder localizar exactamente qué línea estaba cargando la fuente (el autor tiene múltiples puntos que cargan fuentes).

¿Alguna idea?

---------------------------------------------

Edición

Se carga con esta acción:

add_action('wp_enqueue_scripts', array($this, 'load_scripts_styles'));

Y está encolado en la función load_scripts_styles.

He probado con alta prioridad en todo.

También estoy usando un plugin llamado Query Monitor que muestra el orden de todos los hooks y qué plugin está enganchando qué, junto con la función que realiza el enganche. Mi código aparece después del código del plugin, pero todo lo que pasa es que se mueve del header al footer. ¡Me está volviendo loco!

8
Comentarios

¿Cómo se encola?

birgire birgire
16 sept 2015 21:09:12

¿Probaste con una prioridad alta en el hook de acción 'wp_enqueue_scripts'? Solo pregunto porque no lo mostraste o mencionaste explícitamente. La mayoría de los plugins y temas actualmente cargan estilos mediante ese hook, así que estás muy cerca, también puedes agregar la prioridad ahí.

totels totels
16 sept 2015 21:12:23

@birgire He editado mi publicación respondiendo a tus preguntas. Gracias por tu ayuda

John_911 John_911
16 sept 2015 21:23:26

@totels He editado mi publicación respondiendo a tus preguntas. Gracias por tu ayuda

John_911 John_911
16 sept 2015 21:23:45

¿estás seguro de que no hay código en otro lugar que lo esté verificando y encolando más tarde? si aparece en el pie de página, podría estar enganchado a cualquier cosa que se active antes o en wp_footer.

Milo Milo
16 sept 2015 21:27:24

@Milo esto debe estar sucediendo, es la única cosa que lo explicaría, ¿verdad?

John_911 John_911
16 sept 2015 21:32:05

Supongo que sí. También podrías intentar desregistrarlo en lugar de simplemente sacarlo de la cola, de esa manera no se puede volver a encolar sin volver a registrarlo o encolarlo de nuevo sin los parámetros completos.

Milo Milo
16 sept 2015 21:43:46

@Milo gracias por tu ayuda. Publiqué una respuesta. Todo está bien ahora.

John_911 John_911
16 sept 2015 22:09:29
Mostrar los 3 comentarios restantes
Todas las respuestas a la pregunta 1
1
22

Vale, así que lo resolví.

function custom_dequeue() {
    wp_dequeue_style('et-gf-open-sans');
    wp_deregister_style('et-gf-open-sans');
}

add_action( 'wp_enqueue_scripts', 'custom_dequeue', 9999 );
add_action( 'wp_head', 'custom_dequeue', 9999 );

@milo tenía razón. El plugin estaba volviendo a encolar (re-enqueue) la fuente, así que al desregistrarla conseguí que ese archivo dejara de cargarse.

Luego el plugin tenía otra verificación, donde registraba y encolaba otra fuente con el mismo handle (identificador). La acción estaba enganchada en wp_head, así que añadí otra acción a wp_head y finalmente conseguí que dejara de cargarse por completo.

¡Gracias a todos por la ayuda!

16 sept 2015 22:08:38
Comentarios

el mismo problema aquí, pero aún no se resuelve en el caso de Modern Events Calendar Lite :(

eapo eapo
12 may 2019 08:30:43