Có một số thành phần để tạo lỗi / thông báo quá trình tạo và hiển thị:
add_settings_error()
gọi để thêm mục vào ngăn xếp ( $wp_settings_errors
biến toàn cục).
settings_errors
tạm thời giữ các lỗi để chúng tồn tại di chuyển từ trang này sang trang khác.
settings_errors()
Chức năng get_settings_errors()
truy xuất lỗi từ bộ nhớ hoặc thoáng qua và sau đó hiển thị chúng.
Chúng hoạt động như một bùa mê cho API cài đặt, nhưng tiếc là chúng không được thiết lập để sử dụng chung. Mặt khác, nó là tầm thường để làm việc xung quanh đó.
Hook settings_errors()
để admin_notices
trên trang của plugin của bạn, vượt qua mã lỗi với nó vì vậy nó chỉ cho thấy công cụ của bạn.
Lưu thủ công các lỗi để settings_errors
thoáng qua (chỉ cần nhét biến toàn cục vào đó).
Vì get_settings_errors()
mong đợi gợi ý trong các tham số GET ( $_GET['settings-updated']
) nên kiểm tra tạm thời thay vì bộ nhớ, bạn có thể cung cấp hoặc nhận lỗi từ tạm thời và lưu chúng trở lại biến toàn cục trước settings_errors()
cuộc gọi của bạn .
Cập nhật
Bạn đang biến điều này thành một mớ hỗn độn với nhiều câu hỏi, vì vậy tôi sẽ cố gắng giải quyết mối quan tâm của bạn ở đây.
API cài đặt làm việc với các trang admin, mà không sử dụng phần Cài đặt làm cơ sở. Vấn đề thực sự của bạn là trong trường hợp đó báo cáo lỗi / thông báo không hoạt động.
Đầu tiên, đây là những gì xảy ra khi bạn đăng mẫu, thiết lập với API Cài đặt:
- Dữ liệu được đăng lên
options.php
trang đặc biệt .
- Có dữ liệu được khử trùng / xác nhận bằng cách sử dụng gọi lại.
- Bất kỳ lỗi / thông báo nào xuất hiện trong quá trình vệ sinh / xác nhận được thu thập và lưu lại tạm thời.
- Bạn được chuyển hướng trở lại bất cứ nơi nào bạn đến .
Bây giờ khi bạn tải trang quản trị, nó sẽ kiểm tra xem trang này có thuộc phần Cài đặt hay không và nếu trường hợp đó bao gồm options-head.php
tệp nhỏ , điều đó có liên quan đến việc truy xuất và hiển thị các thông báo lỗi.
Vì vậy, điều duy nhất "không hoạt động" trên các trang khác là bước thứ hai này, điều này không quan trọng để tự làm với tổng quan về chức năng liên quan ở trên (tôi có thể đã đi vào quá nhiều chi tiết về thoáng qua, bạn sẽ không cần điều đó cho trường hợp cơ bản).