Thông báo API cài đặt sẽ không hiển thị nếu trang quản trị tùy chỉnh không được nối vào add_options_page ()


9

Đã chơi xung quanh với API Cài đặt và thấy rằng các thông báo (thành công hoặc lỗi) chỉ được hiển thị khi một trang cài đặt được nối vào menu WordPress thông qua add_options_page (). Bất cứ điều gì khác sẽ không hoạt động, ví dụ add_dashboard_page (). Muốn biết điều này có đúng không? Mã mẫu tôi đã thử với câu trả lời có chứa lớp "Đã đăng ký Cài đặt " tại nơi để đăng ký_s_s_số cho API cài đặt khi bạn cũng muốn cập nhật các tùy chọn bên ngoài API cài đặt?

Câu trả lời:


21

Cảm ơn Chip ( hướng dẫn API cài đặt tuyệt vời ) và t31os ( đoạn mã tuyệt vời để thử nghiệm nhanh ) cho cả hai đề xuất của bạn.

Tôi đã đào sâu thêm và thấy rằng các thông báo mặc định thực sự có thể được hiển thị nếu tôi móc vào bất kỳ menu nào nhưng chỉ khi chức năng settings_errors () được gọi.

Ví dụ: sửa đổi mã t31os như sau:

<div class="wrap">
  <h2>Test</h2>
  <?php settings_errors(); ?>
  <form action="options.php" method="post">

Thông báo lỗi tùy chỉnh cũng có thể được thêm bằng cách gọi hàm add_sinstall_error () để hiển thị thông báo thành công hoặc thất bại bằng cách chỉ định $typetham số là 'lỗi' hoặc 'cập nhật'.


điều này đã làm tôi bối rối trong một thời gian quá! sử dụng settings_errors();đã lừa, cảm ơn vì đã đăng một Jesse tiếp theo!
luậnLuv

10

Tôi sử dụng tích hợp API Cài đặt với Chủ đề của mình, sử dụng add_theme_page()và không gặp vấn đề gì khi hiển thị thông báo của quản trị viên.

Tôi nghi ngờ rằng đó là một vấn đề với của bạn chứ không phải là giới hạn API Cài đặt.

Bạn có thể đăng mã thực tế của mình để chúng tôi có thể giúp bạn giải quyết mọi vấn đề liên quan đến mã không?

BIÊN TẬP

Bạn có thể cần phải xuất thông báo quản trị viên của bạn một cách rõ ràng. Ví dụ, đây là những gì tôi sử dụng trong chức năng đánh dấu trang cài đặt của mình:

<?php if ( isset( $_GET['settings-updated'] ) ) {
    echo "<div class='updated'><p>Theme settings updated successfully.</p></div>";
} ?>

Tôi giả sử bạn cũng có thể làm một cái gì đó tương tự cho các thông báo lỗi.


Xem câu trả lời cập nhật.
Chip Bennett

Mã tôi đã sử dụng có thể được tìm thấy tại pastebin . Xin lỗi nếu tôi không đủ rõ ràng. Những gì tôi quan sát được là nếu tôi nối vào menu thông qua add_options_page()và lưu cài đặt, thông báo "Đã lưu cài đặt" sẽ được hiển thị. Tuy nhiên, nếu tôi thay đổi mã để sử dụng add_theme_page()hoặc add_dashboard_page(), thì thông báo "Cài đặt đã lưu" mặc định sẽ không xuất hiện.
Jesse van Couten

Phải ... bạn đã thêm mã theo ví dụ trên? Bạn phải thêm nó một cách rõ ràng vào chức năng đánh dấu trang cài đặt của bạn.
Chip Bennett

Tôi rất hãnh diện khi bạn sử dụng mã kiểm tra của tôi để xây dựng, Chip chính xác rằng bạn sẽ cần phải tự thêm thông báo một cách rõ ràng. Điều may mắn nhất với trang cài đặt của bạn Jesse .. :)
t31os
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.