wp_enqueue_script được gọi không chính xác


20

Tôi không biết làm thế nào nhưng bây giờ tôi nhận được lỗi này:

Lưu ý: wp_enqueue_style được gọi không chính xác. Các tập lệnh và kiểu không nên được đăng ký hoặc xử lý cho đến khi các móc wp_enqueue_scripts, admin_enqueue_scripts hoặc login_enqueue_scripts. Vui lòng xem Gỡ lỗi trong WordPress để biết thêm thông tin. (Thông báo này đã được thêm vào trong phiên bản 3.3.) Trong wp-gồm / Hàm.php trên dòng 3049

Lưu ý: wp_enqueue_script được gọi không chính xác. Các tập lệnh và kiểu không nên được đăng ký hoặc xử lý cho đến khi các móc wp_enqueue_scripts, admin_enqueue_scripts hoặc login_enqueue_scripts. Vui lòng xem Gỡ lỗi trong WordPress để biết thêm thông tin. (Thông báo này đã được thêm vào trong phiên bản 3.3.) Trong wp-gồm / Hàm.php trên dòng 3049

Cảnh báo: Không thể sửa đổi thông tin tiêu đề - các tiêu đề đã được gửi bởi (đầu ra bắt đầu tại wp-gồm / Hàm.php: 3049) trong wp-login.php trên dòng 415

Cảnh báo: Không thể sửa đổi thông tin tiêu đề - các tiêu đề đã được gửi bởi (đầu ra bắt đầu tại wp-gồm / Hàm.php: 3049) trong wp-login.php trên dòng 427

Đây là những gì tôi nhận được khi cố gắng đăng nhập ... Trên các trang web khác, tôi chỉ có hai lỗi đầu tiên. Tôi cố gắng sửa nó nhưng tôi không thể. Bất kỳ đề xuất?


1
Các Notices có vẻ khá tự giải thích. Những gì bạn đã cố gắng và những gì nó không hoạt động?
s_ha_dum

@s_ha_ không giống như nó đã được. Tôi liên tục nhận được các lỗi này:
raiden

Câu trả lời:


15

Vô hiệu hóa tất cả các plugin và chuyển sang chủ đề mặc định. Nó sẽ biến mất ngay bây giờ.

Sau đó kích hoạt từng addon từng bước một, cho đến khi vấn đề trở lại. Bây giờ bạn đã biết nguồn, hãy nói một plugin.

Các cuộc gọi plugin có lẽ wp_enqueue_scriptquá sớm. Tìm tất cả các lần xuất hiện của chức năng đó, sau đó đảm bảo rằng chúng bị ràng buộc với các hành động cụ thể:

  • wp_register_script() nên được kêu gọi hành động wp_loaded
  • wp_enqueue_script trên một trong những hành động
    • wp_enqueue_scripts,
    • admin_enqueue_scripts,
    • customize_controls_enqueue_scripts hoặc là
    • login_enqueue_scripts(xem chủ đề này cho cái sau).

Vấn đề là tôi không thể đăng nhập vì tôi cũng gặp phải lỗi lạ này với cookie. Lỗi nói rằng tôi đã chặn cookie trong trình duyệt của mình, nhưng tôi không chặn chúng ... Thật kỳ lạ bởi vì tất cả những gì tôi đã làm hôm nay là thêm một vài dòng vào style.css, mọi thứ đều tốt, nhưng một Vài giờ sau khi tôi có những lỗi đó.
raiden

@ e ngại Sau đó đổi tên thư mục plugin của bạn trên FTP, thực hiện tương tự cho chủ đề hiện đang hoạt động.
fuxia

Bây giờ tôi có thể đăng nhập vào bảng điều khiển của mình ... cảm ơn bạn! nhưng bây giờ tôi nhận được một lỗi nữa Cảnh báo: Không thể sửa đổi thông tin tiêu đề - các tiêu đề đã được gửi bởi (đầu ra bắt đầu tại wp-gồm / Hàm.php: 3049) trong wp-gộp / pluggable.php trên dòng 896
raiden

4

Dựa trên giải pháp của Gregory Schultz :

Bao bọc tất cả các tập lệnh và kiểu của bạn trong một hàm và nối hàm đó với enqueuehành động đích của bạn . 👇

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 - mặt trước

admin_enqueue_scripts - Trang quản trị

login_enqueue_scripts - trang đăng nhập


2

Lý do tại sao điều này xảy ra là vì các hàm này đang được gọi trực tiếp từ tệp tin.php, mà không sử dụng hàm. Tìm ra dòng nào trong Hàm.php không nằm trong hàm như thế này và thêm chúng.

Ví dụ cho datepicker:

-Cung cấp điều này trong các hàm.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');

-Chúng tôi thêm cái này

    // Chúng tôi xác định hàm:
    hàm MYTHEME_scripts () {
    wp_enqueue_script ('jquery-ui-datepicker');
    }

    // Thêm các chức năng vào danh sách tải WP.
    add_action ('wp_enqueue_scripts', 'MYTHEME_scripts');

    hàm MYTHEME_styles () {
    wp_enqueue_style ('jquery-ui-css', '//code.jquery.com/ui/1.12.1/theme/base/jquery-ui.css');
    wp_enqueue_style ('jquery-ui-css', '//ajax.googleapis.com/ajax/libs/jqueryui/1.8.2/theme/smoothness/jquery-ui.css');
    }

    // Thêm các chức năng vào danh sách tải WP.
    add_action ('wp_enqueue_style', 'MYTHEME_ststyle');

Hy vọng nó hoạt động


1

Điều đó có nghĩa là có 3 "điểm cuối" wp_enqueue_script()là wp_enqueue_scripts cho frontend, login_enqueue_scripts cho màn hình đăng nhập, admin_enqueue_scripts cho bảng điều khiển quản trị viên. Kiểm tra liên kết này .

Bạn nhận được lỗi này vì wp_enqueue_script()được gọi là không ổn định.


Tôi hiểu những gì ở đó, nhưng tôi không biết cách (thực hiện?) Điều này "Cách khắc phục: Thay vào đó hãy sử dụng wp_enqueue_scripts."
raiden

nó có nghĩa là bạn chỉ cần sử dụng wp_enqueue_scriptsthay vì wp_print_stylesnhưng tôi nghi ngờ nó liên quan đến trường hợp của bạn. Nó chỉ là một ví dụ về xử lý sự cố. Trong trường hợp của bạn, có một số chức năng trong plugin hoặc chủ đề sử dụng sai wp_enqueue_script()để bạn gặp lỗi này ... tôi đoán.
JMau

Tôi đã nhận được 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.tôi bọc tất cả các kịch bản và phong cách của tôi trong một chức năng và thông báo đã biến mất.
Gregory Schultz

Ngoài ra, tôi không có lỗi
Gregory Schultz

1

Thay vì vô hiệu hóa tất cả các plugin của bạn từng cái một hoặc sửa đổi cơ sở mã của bạn để gỡ lỗi, bạn có thể sử dụng plugin Trình theo dõi truy vấn để thu hẹp nguồn của lỗi này.

Khi bạn thấy lỗi này được báo cáo trong bảng điều khiển:

wp_register_style được gọi không chính xác. Các tập lệnh và kiểu không nên được đăng ký hoặc xử lý cho đến khi các móc wp_enqueue_scripts, admin_enqueue_scripts hoặc login_enqueue_scripts. Vui lòng xem Gỡ lỗi trong WordPress để biết thêm thông tin. (Thông báo này đã được thêm vào trong phiên bản 3.3.0.)

Cột cuối cùng ( Component) sẽ cho bạn biết plugin đang gây ra lỗi. Từ đó thực hiện tìm kiếm bên trong plugin (hoặc chủ đề) đó để tìm và vá vấn đề.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.