wp_enqueue_script foi chamado incorretamente


20

Não sei como, mas agora estou recebendo este erro:

Aviso: wp_enqueue_style foi chamado incorretamente. Os scripts e estilos não devem ser registrados ou enfileirados até os ganchos wp_enqueue_scripts, admin_enqueue_scripts ou login_enqueue_scripts. Consulte Depuração no WordPress para obter mais informações. (Esta mensagem foi adicionada na versão 3.3.) Em wp-includes / functions.php na linha 3049

Aviso: wp_enqueue_script foi chamado incorretamente. Os scripts e estilos não devem ser registrados ou enfileirados até os ganchos wp_enqueue_scripts, admin_enqueue_scripts ou login_enqueue_scripts. Consulte Depuração no WordPress para obter mais informações. (Esta mensagem foi adicionada na versão 3.3.) Em wp-includes / functions.php na linha 3049

Aviso: Não é possível modificar as informações do cabeçalho - os cabeçalhos já enviados por (saída iniciada em wp-includes / functions.php: 3049) em wp-login.php na linha 415

Aviso: Não é possível modificar as informações do cabeçalho - os cabeçalhos já enviados por (saída iniciada em wp-includes / functions.php: 3049) em wp-login.php na linha 427

É isso que recebo quando tento fazer login ... Em outros sites, tenho apenas dois primeiros erros. Eu tento consertar, mas não posso. Alguma sugestão?


1
Eles Noticeparecem bastante auto-explicativos. O que você tentou e o que não funcionou?
S03

@s_ha_dum Eu tentei muitas coisas que encontrei no Google ... agora as soluções da toscho funcionaram para mim e posso fazer login no meu painel de administração, mas o que vejo é que algo está errado com o estilo de carregamento, porque a fonte é não é o mesmo que era. Recebo este erro:
Raiden

Respostas:


15

Desative todos os plugins e mude para o tema padrão. Deve ter ido embora agora.

Em seguida, ative cada complemento passo a passo, até que o problema volte. Você conhece a fonte agora, digamos um plugin.

O plug-in provavelmente chama wp_enqueue_scriptmuito cedo. Encontre todas as ocorrências dessa função e verifique se elas estão vinculadas a ações específicas:

  • wp_register_script() deve ser chamado para a ação wp_loaded
  • wp_enqueue_script em uma das ações
    • wp_enqueue_scripts,
    • admin_enqueue_scripts,
    • customize_controls_enqueue_scripts ou
    • login_enqueue_scripts(veja este tópico para o último).

O problema é que não consigo entrar porque também recebo esse erro estranho com os cookies. O erro diz que eu bloqueei os cookies no meu navegador, mas não os bloqueei ... É tão estranho porque tudo o que fiz hoje foi adicionar algumas linhas ao style.css, tudo estava bem, mas um algumas horas depois que eu tive esses erros.
Raiden

@raiden Em seguida, renomeie o diretório do plugin por FTP, faça o mesmo para o tema atualmente ativo.
Fuxia

Agora posso entrar no meu painel ... obrigado! mas agora recebo mais um erro Aviso: Não é possível modificar as informações do cabeçalho - os cabeçalhos já enviados por (saída iniciada em wp-includes / functions.php: 3049) em wp-includes / pluggable.php na linha 896
raiden

4

Com base na solução de Gregory Schultz :

Coloque todos os seus scripts e estilos em uma função e conecte-a à sua enqueueação 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 - a parte dianteira

admin_enqueue_scripts - página de administrador

login_enqueue_scripts - página de login


2

A razão pela qual isso está acontecendo é porque essas funções estão sendo chamadas diretamente do arquivo functions.php, sem usar uma função. Descubra quais linhas no functions.php não estão dentro de uma função como essa e adicione-as.

Exemplo para datepicker:

-Em vez disso, em 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');

-Adicionamos isso

    // Definimos a função:
    função MYTHEME_scripts () {
    wp_enqueue_script ('jquery-ui-datepicker');
    }

    // Adicione as funções à lista de carregamento do WP.
    add_action ('wp_enqueue_scripts', 'MYTHEME_scripts');

    função 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');
    }

    // Adicione as funções à lista de carregamento do WP.
    add_action ('wp_enqueue_style', 'MYTHEME_styles');

Espero que funcione


1

Isso significa que existem três "pontos de extremidade" para os wp_enqueue_script()quais wp_enqueue_scripts para o front-end, login_enqueue_scripts para a tela de login, admin_enqueue_scripts para o painel de administração. Verifique este link .

Você recebe esse erro porque wp_enqueue_script()foi chamado incorretamente.


Entendo o que há, mas não sei como (implementar?) Esta "correção: use wp_enqueue_scripts".
Raiden

isso significa que você apenas tem que usar wp_enqueue_scriptsem vez de wp_print_styles, mas eu duvido que é relacionado ao seu caso. É apenas um exemplo de solução de problemas. No seu caso, existem algumas funções em plugins ou temas que wp_enqueue_script()fazem uso indevido para que você obtenha esse erro ... meu palpite.
JMau

Eu estava conseguindo 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.envolver todos os meus scripts e estilos em uma função e o aviso foi embora.
Gregory Schultz

Além disso, eu não recebo erros.
Gregory Schultz

1

Em vez de desativar todos os seus plug-ins um por um ou modificar sua base de código para depuração, você pode usar o plug-in Query Monitor para restringir a origem desse erro.

Quando você vê este erro relatado no console:

wp_register_style foi chamado incorretamente. Os scripts e estilos não devem ser registrados ou enfileirados até os ganchos wp_enqueue_scripts, admin_enqueue_scripts ou login_enqueue_scripts. Consulte Depuração no WordPress para obter mais informações. (Esta mensagem foi adicionada na versão 3.3.0.)

A última coluna ( Component) informará o plug-in que está acionando o erro. A partir daí, faça uma pesquisa dentro desse plug-in (ou tema) para encontrar e corrigir o problema.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.