wp_enqueue_script se llamó incorrectamente

6 mar 2014, 21:54:16
Vistas: 84.9K
Votos: 33

No sé cómo pero ahora estoy recibiendo este error:

Notice: wp_enqueue_style fue llamado incorrectamente. Los scripts y estilos no deben ser registrados o encolados hasta los hooks wp_enqueue_scripts, admin_enqueue_scripts, o login_enqueue_scripts. Por favor consulta Depuración en WordPress para más información. (Este mensaje fue añadido en la versión 3.3.) en wp-includes/functions.php en la línea 3049

Notice: wp_enqueue_script fue llamado incorrectamente. Los scripts y estilos no deben ser registrados o encolados hasta los hooks wp_enqueue_scripts, admin_enqueue_scripts, o login_enqueue_scripts. Por favor consulta Depuración en WordPress para más información. (Este mensaje fue añadido en la versión 3.3.) en wp-includes/functions.php en la línea 3049

Warning: No se puede modificar la información del encabezado - los encabezados ya fueron enviados por (la salida comenzó en wp-includes/functions.php:3049) en wp-login.php en la línea 415

Warning: No se puede modificar la información del encabezado - los encabezados ya fueron enviados por (la salida comenzó en wp-includes/functions.php:3049) en wp-login.php en la línea 427

Esto es lo que obtengo cuando intento iniciar sesión... En otros sitios, solo tengo los dos primeros errores. Intento arreglarlo pero no puedo. ¿Alguna sugerencia?

2
Comentarios

Los Notices parecen bastante autoexplicativos. ¿Qué has intentado y qué no te ha funcionado?

s_ha_dum s_ha_dum
6 mar 2014 22:06:16

@s_ha_dum He intentado muchas cosas que encontré en Google... justo ahora la solución de toscho funcionó para mí, y puedo acceder al panel de administración, pero lo que veo es que algo falla al cargar los estilos, porque la fuente no es la misma que antes. Sigo recibiendo estos errores:

raiden raiden
6 mar 2014 22:35:59
Todas las respuestas a la pregunta 7
3
19

Desactiva todos los plugins y cambia al tema predeterminado. El problema debería desaparecer ahora.

Luego, activa cada complemento paso a paso, hasta que el problema vuelva a aparecer. Ahora conoces la fuente, digamos que es un plugin.

Probablemente el plugin llama a wp_enqueue_script demasiado pronto. Encuentra todas las ocurrencias de esa función, luego asegúrate de que estén vinculadas a acciones específicas:

  • wp_register_script() debería llamarse para la acción wp_loaded
  • wp_enqueue_script en una de las acciones
    • wp_enqueue_scripts,
    • admin_enqueue_scripts,
    • customize_controls_enqueue_scripts o
    • login_enqueue_scripts (consulta este hilo para el último).
6 mar 2014 22:09:51
Comentarios

El problema es que no puedo iniciar sesión porque también me aparece este extraño error con las cookies. El error dice que tengo las cookies bloqueadas en mi navegador, pero no las tengo bloqueadas... Es muy raro porque lo único que he hecho hoy fue agregar unas líneas a style.css, todo estaba bien, pero unas horas después me aparecieron esos errores.

raiden raiden
6 mar 2014 22:12:00

@raiden Entonces renombra tu directorio de plugins por FTP, haz lo mismo con el tema actualmente activo.

fuxia fuxia
6 mar 2014 22:13:05

Ahora puedo iniciar sesión en mi panel... ¡gracias! pero ahora me aparece un error más: Warning: Cannot modify header information - headers already sent by (output started at wp-includes/functions.php:3049) in wp-includes/pluggable.php on line 896

raiden raiden
6 mar 2014 22:20:22
1
18

Basado en la solución de Gregory Schultz:

Envuelve todos tus scripts y estilos en una función y engancha esa función a tu acción enqueue objetivo.

function my_admin_scripts() {
  wp_enqueue_style( 'admin-css', get_stylesheet_directory_uri() . '/admin/css/admin.css' );
  wp_enqueue_script( 'admin-js', get_stylesheet_directory_uri() . '/admin/js/admin.js', true );
}
add_action( 'admin_enqueue_scripts', 'my_admin_scripts' );

wp_enqueue_scripts — front-end

admin_enqueue_scripts — página de administración

login_enqueue_scripts — página de inicio de sesión

28 jun 2018 09:13:07
Comentarios

Esto definitivamente ayuda, gracias :)

jrran90 jrran90
29 nov 2020 16:29:32
0

En lugar de desactivar todos tus plugins uno por uno, o modificar tu código base para depurar, puedes usar el plugin Query Monitor para identificar la fuente de este error.

Cuando veas este error reportado en la consola:

wp_register_style fue llamado incorrectamente. Los scripts y estilos no deben registrarse ni encolarse hasta los hooks wp_enqueue_scripts, admin_enqueue_scripts, o login_enqueue_scripts. Por favor consulta Depuración en WordPress para más información. (Este mensaje fue añadido en la versión 3.3.0.)

La última columna (Component) te indicará el plugin que está provocando el error. Desde ahí, realiza una búsqueda dentro de ese plugin (o tema) para encontrar y corregir el problema.

10 jul 2018 19:47:19
1

La razón por la que esto está sucediendo es porque estas funciones se están llamando directamente desde el archivo functions.php, sin usar una función. Identifica qué líneas en functions.php no están dentro de una función como esta, y agrégalas.

Ejemplo para datepicker:

-En lugar de esto en functions.php:

wp_enqueue_script('jquery-ui-datepicker');
wp_enqueue_style('jquery-ui-css', '//code.jquery.com/ui/1.12.1/themes/base/jquery-ui.css');
wp_enqueue_style('jquery-ui-css', '//ajax.googleapis.com/ajax/libs/jqueryui/1.8.2/themes/smoothness/jquery-ui.css');

-Agregamos esto

// Definimos la función:
function MYTHEME_scripts() {
    wp_enqueue_script('jquery-ui-datepicker');
}
    
// Añadimos las funciones a la lista de carga de WP.
add_action( 'wp_enqueue_scripts', 'MYTHEME_scripts' );
    
function MYTHEME_styles() {
    wp_enqueue_style('jquery-ui-css', '//code.jquery.com/ui/1.12.1/themes/base/jquery-ui.css');
    wp_enqueue_style('jquery-ui-css', '//ajax.googleapis.com/ajax/libs/jqueryui/1.8.2/themes/smoothness/jquery-ui.css');
}
    
// Añadimos las funciones a la lista de carga de WP.
add_action( 'wp_enqueue_scripts', 'MYTHEME_styles' );
23 ene 2019 21:35:32
Comentarios

No existe un hook wp_enqueue_style.
La mejor y más limpia solución, cuando el problema aparece en el sitio web y no en el área de administración, es la de @Usman Ahmed

Ludwig Ludwig
6 may 2021 01:24:26
4

Esto significa que hay 3 "endpoints" para wp_enqueue_script() que son wp_enqueue_scripts para el frontend, login_enqueue_scripts para la pantalla de inicio de sesión, y admin_enqueue_scripts para el panel de administración. Consulta este enlace.

Recibes este error porque wp_enqueue_script() fue llamado incorrectamente.

6 mar 2014 22:06:22
Comentarios

Entiendo lo que hay ahí, pero no sé cómo (implementar?) esto "La solución: Usar wp_enqueue_scripts en su lugar."

raiden raiden
6 mar 2014 22:26:28

significa que solo tienes que usar wp_enqueue_scripts en lugar de wp_print_styles pero dudo que esté relacionado con tu caso. Es solo un ejemplo de solución de problemas. En tu caso hay algunas funciones en plugins o temas que hacen un mal uso de wp_enqueue_script() por lo que obtienes este error... es mi suposición.

JMau JMau
6 mar 2014 22:37:18

Me aparecía Notice: wp_register_style was called incorrectly. Scripts and styles should not be registered or enqueued until the wp_enqueue_scripts, admin_enqueue_scripts, or login_enqueue_scripts hooks. Envolví todos mis scripts y estilos en una función y el aviso desapareció.

Gregory Schultz Gregory Schultz
24 may 2018 03:24:58

Además de eso, no recibo ningún error

Gregory Schultz Gregory Schultz
24 may 2018 03:25:12
0

Envuélvelo en un hook llamado wp_enqueue_scripts.

Ejemplo:

add_action( 'wp_enqueue_scripts', function() {
    wp_enqueue_style('style', get_stylesheet_uri(), false, false, 'all');
    wp_enqueue_script( 'custom-script', get_stylesheet_directory_uri() . '/script.js', true );
});
6 sept 2020 13:13:28
1

Lo que resolvió este problema para mí fue descargar el editor clásico de WordPress y el plugin de widgets clásicos.

17 dic 2021 10:47:00
Comentarios

Eso suena como si lo resolvieras desactivando el código dañado, no arreglándolo realmente

Rup Rup
17 dic 2021 13:15:55