Ada beberapa komponen untuk pembuatan kesalahan / pemberitahuan dan proses tampilan:
add_settings_error()
panggilan untuk menambahkan item ke tumpukan ( $wp_settings_errors
variabel global ).
settings_errors
sementara yang menjaga kesalahan sehingga mereka bertahan bergerak dari halaman ke halaman.
settings_errors()
berfungsi get_settings_errors()
untuk mengambil kesalahan dari memori atau sementara dan kemudian menampilkannya.
Ini berfungsi seperti pesona untuk Pengaturan API, tetapi sayangnya mereka tidak disetel untuk penggunaan umum. Di sisi lain itu sepele untuk mengatasi itu.
Kaitkan settings_errors()
ke admin_notices
halaman plugin Anda, kirimkan kode kesalahan sehingga hanya menunjukkan barang-barang Anda.
Secara manual menyimpan kesalahan ke settings_errors
transient (hanya hal-hal yang variabel global ke dalamnya).
Karena get_settings_errors()
mengharapkan petunjuk dalam parameter GET ( $_GET['settings-updated']
) bahwa ia harus memeriksa transient, bukan memori, Anda dapat menyediakan atau mendapatkan kesalahan dari transient sendiri dan menyimpannya kembali ke variabel global sebelum settings_errors()
panggilan Anda .
Memperbarui
Anda mengubah ini menjadi sedikit berantakan dengan banyak pertanyaan, jadi saya akan mencoba untuk mengatasi masalah Anda di sini.
Pengaturan API melakukan pekerjaan dengan halaman admin, yang tidak menggunakan bagian pengaturan sebagai dasar. Masalah Anda yang sebenarnya adalah bahwa dalam hal itu pelaporan kesalahan / pemberitahuan tidak berfungsi.
Pertama di sini adalah apa yang terjadi ketika Anda memposting formulir, atur dengan Pengaturan API:
- Data akan diposting ke
options.php
halaman khusus .
- Ada data yang dibersihkan / divalidasi menggunakan panggilan balik.
- Setiap kesalahan / pemberitahuan yang muncul selama sanitasi / validasi dikumpulkan dan disimpan secara sementara.
- Anda diarahkan kembali ke mana pun Anda berasal .
Sekarang ketika Anda memuat halaman admin memeriksa apakah halaman ini milik bagian Pengaturan dan jika kasing itu berisi options-head.php
file kecil , yang berkaitan dengan mengambil dan menampilkan pemberitahuan kesalahan.
Jadi satu-satunya hal "tidak berfungsi" pada halaman lain adalah langkah terakhir ini, yang sepele untuk dilakukan sendiri dengan ikhtisar fungsi terkait di atas (saya mungkin masuk ke terlalu banyak detail tentang transient, Anda tidak akan memerlukan itu untuk kasus dasar).