Tiêu đề nghe có vẻ phản trực giác nhưng chịu đựng tôi. :)
Tôi có trang tùy chọn, được thực hiện với API Cài đặt. Khi người dùng nhập dữ liệu không hợp lệ, tôi muốn hiển thị thông báo lỗi với add_settings_error()
cuộc gọi.
Nhưng! Để xác định dữ liệu đó không hợp lệ, tôi cần thực hiện cuộc gọi API từ xa. Cuộc gọi đó phụ thuộc vào dữ liệu đã lưu. Vì vậy, tôi không thể thực hiện điều này trong cuộc gọi lại vệ sinh (nơi được khuyến nghị để ném các thông báo như vậy) vì dữ liệu của tôi chưa được lưu.
Thay vào đó tôi đã cố gắng móc séc của tôi vào admin_notices
. Nó hoạt động tốt hầu hết thời gian trừ một trường hợp (và quan trọng nhất) - khi các cài đặt được lưu, chúng luôn được theo sau bởi Cài đặt gốc được lưu. thông báo và thông báo tùy chỉnh của tôi hoàn toàn bị bỏ qua vì một số lý do.
Vậy làm thế nào để tôi ném thông báo lỗi đó ngay cả khi WP nghĩ mọi thứ đều ổn?
Biên tập
Câu hỏi tập trung hơn - tại sao chính xác Cài đặt được lưu. bất kỳ thông báo khác?
PS Tôi có thể cố gắng thực hiện cuộc gọi API tùy chọn lấy dữ liệu làm đối số thay vì đọc nó từ tùy chọn đã lưu, nhưng cho đến nay tôi nghĩ rằng nó sẽ làm cho các đối số quá cồng kềnh.
get_settings_errors()
, tại thời điểm đó, cửa hàng tạm thời bị xóa, sau đó bạn khôi phục chúng vớiadd_settings_error()
từng cái một và thêm cái mới của bạn. Bây giờ cửa hàng tạm thời bị xóa và bạn có tất cả chúng trong cửa hàng trang cục bộ, vì vậy lần chạy tiếp theosettings_errors()
sẽ bắt chúng. Bạn nghĩ sao?