wp_enqueue_script dipanggil secara tidak benar

20

Saya tidak tahu caranya, tetapi sekarang saya mendapatkan kesalahan ini:

Perhatikan: wp_enqueue_style dipanggil dengan salah. Skrip dan gaya tidak boleh didaftarkan atau enqueued sampai wp_enqueue_scripts, admin_enqueue_scripts, atau kait login_enqueue_scripts. Silakan lihat Debugging di WordPress untuk informasi lebih lanjut. (Pesan ini ditambahkan dalam versi 3.3.) Di wp-include / functions.php on line 3049

Perhatikan: wp_enqueue_script dipanggil secara tidak benar. Skrip dan gaya tidak boleh didaftarkan atau enqueued sampai wp_enqueue_scripts, admin_enqueue_scripts, atau kait login_enqueue_scripts. Silakan lihat Debugging di WordPress untuk informasi lebih lanjut. (Pesan ini ditambahkan dalam versi 3.3.) Di wp-include / functions.php on line 3049

Peringatan: Tidak dapat mengubah informasi header - header sudah dikirim oleh (output dimulai pada wp-include / functions.php: 3049) di wp-login.php on line 415

Peringatan: Tidak dapat mengubah informasi header - header sudah dikirim oleh (output dimulai pada wp-include / functions.php: 3049) di wp-login.php on line 427

Ini yang saya dapatkan ketika saya mencoba masuk ... Di situs lain, saya hanya memiliki dua kesalahan pertama. Saya mencoba memperbaikinya tetapi saya tidak bisa. Ada saran?

Raiden
sumber
1
The Notices tampaknya cukup jelas. Apa yang sudah Anda coba dan apa yang tidak berhasil?
s_ha_dum
@s_ha_dum Saya telah mencoba banyak hal yang saya temukan di Google ... sekarang solusi toscho bekerja untuk saya, dan saya bisa masuk ke panel admin saya, tetapi yang bisa saya lihat adalah ada yang salah dengan gaya memuat, karena font adalah tidak sama seperti dulu. Saya terus mendapatkan kesalahan ini:
raiden

Jawaban:

15

Nonaktifkan semua plugin dan beralih ke tema default. Itu harus pergi sekarang.

Kemudian aktifkan setiap addon langkah demi langkah, sampai masalah muncul kembali. Anda tahu sumbernya sekarang, katakanlah sebuah plugin.

Panggilan plugin mungkin wp_enqueue_scriptterlalu dini. Temukan semua kemunculan fungsi itu, lalu pastikan mereka terikat pada tindakan tertentu:

  • wp_register_script() harus dipanggil untuk bertindak wp_loaded
  • wp_enqueue_script pada salah satu tindakan
    • wp_enqueue_scripts,
    • admin_enqueue_scripts,
    • customize_controls_enqueue_scripts atau
    • login_enqueue_scripts(lihat utas ini untuk yang terakhir).
fuxia
sumber
Masalahnya adalah saya tidak bisa masuk karena saya juga mendapatkan kesalahan aneh dengan cookie ini. Kesalahan mengatakan, bahwa saya telah memblokir cookie di browser saya, tetapi saya tidak memblokirnya ... Ini sangat aneh karena semua yang saya lakukan hari ini menambahkan beberapa baris ke style.css, semuanya baik-baik saja, tetapi beberapa jam setelah saya mengalami kesalahan itu.
raiden
@raiden Kemudian ganti nama direktori plugin Anda per FTP, lakukan hal yang sama untuk tema yang sedang aktif.
fuxia
Sekarang saya bisa masuk ke panel saya ... terima kasih! tapi sekarang saya mendapatkan satu kesalahan lagi Peringatan: Tidak dapat mengubah informasi header - header sudah dikirim oleh (output dimulai pada wp-include / functions.php: 3049) di wp-include / pluggable.php pada saluran 896
raiden
4

Berdasarkan solusi Gregory Schultz :

Bungkus semua skrip dan gaya Anda dalam suatu fungsi dan kaitkan fungsi itu ke enqueuetindakan target Anda . 👇

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 - paling depan

admin_enqueue_scripts - halaman admin

login_enqueue_scripts - halaman masuk

myk
sumber
2

Alasan mengapa hal ini terjadi adalah karena fungsi-fungsi ini dipanggil langsung dari file functions.php, tanpa menggunakan fungsi. Cari tahu baris mana di functions.php yang tidak ada di dalam fungsi seperti ini, dan tambahkan mereka.

Contoh untuk datepicker:

-Bukannya ini di 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');

-Kami menambahkan ini

    // Kami mendefinisikan fungsi:
    fungsi MYTHEME_scripts () {
    wp_enqueue_script ('jquery-ui-datepicker');
    }

    // Tambahkan fungsi ke daftar pemuatan WP.
    add_action ('wp_enqueue_scripts', 'MYTHEME_scripts');

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

    // Tambahkan fungsi ke daftar pemuatan WP.
    add_action ('wp_enqueue_style', 'MYTHEME_styles');

Semoga berhasil

Albert Sauqué
sumber
1

Ini berarti ada 3 "titik akhir" wp_enqueue_script()yang merupakan wp_enqueue_scripts untuk frontend, login_enqueue_scripts untuk layar login, admin_enqueue_scripts untuk dashboard admin. Periksa tautan ini .

Anda mendapatkan kesalahan ini karena wp_enqueue_script()dipanggil dengan tidak benar.

JMau
sumber
Saya mengerti apa yang ada di sana, tetapi saya tidak tahu bagaimana caranya (mengimplementasikan?) Ini "Perbaikan: Gunakan wp_enqueue_scripts sebagai gantinya."
raiden
itu berarti Anda hanya perlu menggunakan wp_enqueue_scriptsbukannya wp_print_stylestapi aku ragu itu terkait dengan kasus Anda. Itu hanya contoh pemecahan masalah. Dalam kasus Anda ada beberapa fungsi di plugin atau tema yang disalahgunakan wp_enqueue_script()sehingga Anda mendapatkan kesalahan ini ... tebakan saya.
JMau
Saya mendapatkan 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.saya membungkus semua skrip dan gaya saya dalam suatu fungsi dan pemberitahuan itu hilang.
Gregory Schultz
Selain itu, saya tidak mendapatkan kesalahan
Gregory Schultz
1

Daripada menonaktifkan semua plugin Anda satu per satu, atau memodifikasi basis kode Anda untuk debug, Anda dapat menggunakan plugin Query Monitor untuk mempersempit sumber kesalahan ini.

Ketika Anda melihat kesalahan ini dilaporkan di konsol:

wp_register_style dipanggil dengan tidak benar. Skrip dan gaya tidak boleh didaftarkan atau di enqueued sampai wp_enqueue_scripts, admin_enqueue_scripts, atau kait login_enqueue_scripts. Silakan lihat Debugging di WordPress untuk informasi lebih lanjut. (Pesan ini ditambahkan dalam versi 3.3.0.)

Kolom terakhir ( Component) akan memberi tahu Anda plugin yang memicu kesalahan. Dari sana lakukan pencarian di dalam plugin itu (atau tema) untuk menemukan dan menambal masalah.

Kevin Leary
sumber