wp_enqueue_script se llamó incorrectamente

20

No sé cómo, pero ahora recibo este error:

Aviso: wp_enqueue_style fue llamado incorrectamente. Las secuencias de comandos y los estilos no se deben registrar ni poner en cola hasta que wp_enqueue_scripts, admin_enqueue_scripts o login_enqueue_scripts estén enganchados. Consulte Depuración en WordPress para obtener más información. (Este mensaje se agregó en la versión 3.3.) En wp-includes / functions.php en la línea 3049

Aviso: wp_enqueue_script se llamó incorrectamente. Las secuencias de comandos y los estilos no se deben registrar ni poner en cola hasta que wp_enqueue_scripts, admin_enqueue_scripts o login_enqueue_scripts estén enganchados. Consulte Depuración en WordPress para obtener más información. (Este mensaje se agregó en la versión 3.3.) En wp-includes / functions.php en la línea 3049

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

Advertencia: No se puede modificar la información del encabezado: los encabezados ya enviados por (salida iniciada 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 dos primeros errores. Intento arreglarlo pero no puedo. ¿Alguna sugerencia?

Raiden
fuente
1
Los Noticemensajes parecen bastante explicativos. ¿Qué has probado y qué no funcionó?
s_ha_dum
@s_ha_dum He intentado muchas cosas que he encontrado en Google ... justo ahora las soluciones de toscho me funcionaron, y puedo iniciar sesión en mi panel de administración, pero lo que puedo ver es que algo va mal con el estilo de carga, porque la fuente es No es lo mismo que era. Sigo recibiendo estos errores:
raiden

Respuestas:

15

Deshabilite todos los complementos y cambie al tema predeterminado. Debería haberse ido ahora.

Luego habilite cada complemento paso a paso, hasta que el problema regrese. Ya conoces la fuente, digamos un complemento.

El complemento llama probablemente wp_enqueue_scriptdemasiado pronto. Encuentre todas las apariciones de esa función, luego asegúrese de que estén vinculadas a acciones específicas:

  • wp_register_script() debe ser llamado 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(Ver este hilo para el último).
fuxia
fuente
El problema es que no puedo iniciar sesión porque también recibo este extraño error con las cookies. El error dice que he bloqueado las cookies en mi navegador, pero no las he bloqueado ... Es muy extraño porque todo lo que hice hoy fue agregar algunas líneas a style.css, todo estuvo bien, pero un Pocas horas después tuve esos errores.
Raiden
@raiden Luego cambie el nombre de su directorio de complementos por FTP, haga lo mismo para el tema actualmente activo.
fuxia
Ahora puedo iniciar sesión en mi panel ... ¡gracias! pero ahora recibo un error más Advertencia: no se puede modificar la información del encabezado: los encabezados ya enviados por (salida iniciada en wp-includes / functions.php: 3049) en wp-includes / pluggable.php en la línea 896
raiden el
4

Basado en la solución de Gregory Schultz :

Envuelva todos sus scripts y estilos en una función y enganche esa función a su enqueueacción de destino . 👇

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 - Interfaz

admin_enqueue_scripts - Página de administrador

login_enqueue_scripts - página de inicio de sesión

Mi k
fuente
2

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

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');

-Añadimos esto

    // Definimos la función:
    función MYTHEME_scripts () {
    wp_enqueue_script ('jquery-ui-datepicker');
    }

    // Agrega las funciones a la lista de carga de WP.
    add_action ('wp_enqueue_scripts', 'MYTHEME_scripts');

    función 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');
    }

    // Agrega las funciones a la lista de carga de WP.
    add_action ('wp_enqueue_style', 'MYTHEME_styles');

Espero que funcione

Albert Sauqué
fuente
1

Significa que hay 3 "puntos finales" para los wp_enqueue_script()cuales wp_enqueue_scripts para la interfaz, login_enqueue_scripts para la pantalla de inicio de sesión, admin_enqueue_scripts para el panel de administración. Mira este enlace .

Obtiene este error porque wp_enqueue_script()se llamó incorrectamente.

JMau
fuente
Entiendo lo que hay allí, pero no sé cómo (¿implementar?) Esta "Solución: use wp_enqueue_scripts en su lugar".
Raiden
significa que solo debes usarlo en wp_enqueue_scriptslugar de, wp_print_stylespero dudo que esté relacionado con tu caso. Es solo un ejemplo de solución de problemas. En su caso, hay algunas funciones en los complementos o el tema que se usan wp_enqueue_script()incorrectamente para que obtenga este error ... supongo.
JMau
Estaba recibiendo 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
Además de eso, no obtengo errores
Gregory Schultz
1

En lugar de deshabilitar todos sus complementos uno por uno, o modificar su base de código para depurar, puede usar el complemento Query Monitor para reducir el origen de este error.

Cuando vea este error reportado en la consola:

wp_register_style fue llamado incorrectamente. Las secuencias de comandos y los estilos no se deben registrar ni poner en cola hasta que wp_enqueue_scripts, admin_enqueue_scripts o login_enqueue_scripts estén enganchados. Consulte Depuración en WordPress para obtener más información. (Este mensaje se agregó en la versión 3.3.0.)

La última columna ( Component) le indicará el complemento que está activando el error. A partir de ahí, busque dentro de ese complemento (o tema) para encontrar y solucionar el problema.

Kevin Leary
fuente