get_settings_errors()
Отримує повідомлення, зареєстровані функцією add_settings_error() .
Ця функція є однією з групи функцій settings_errors() .
Перевіряє масив $wp_settings_errors на наявність доданих при завантаженні сторінки повідомлень (помилок) і повертає їх.
Ми можемо зберігати повідомлення в тимчасову опцію: set_transient( 'settings_errors' )
, щоб, використовуючи get_transient(), під час перезавантаження сторінки або нового заходу на сторінку налаштувань, ми могли отримати помилки попередніх перевірок даних. WordPress розуміє цю тимчасову опцію і якщо в параметрі GET запиту буде встановлений параметр ?settings-updated=true
(він встановлюється автоматично при вдалому збереженні опцій, то наша тимчасова опція зі збереженими в ній повідомленнями буде злита з поточним масивом повідомлень і тимчасова опція settings_errors буде видалена. Ось частина коду функції get_settings_errors () відповідальна за ці дії:
// If settings були passed back from options.php then use them if ( isset( $_GET['settings-updated'] ) && $_GET['settings-updated'] && get_transient( 'settings_errors' ) ) { $wp_settings_errors = array_merge( (array) $wp_settings_errors, get_transient( 'settings_errors' ) ); delete_transient( 'settings_errors'); }
settings_errors()
Хуків немає.
Повертає
Массив
. Масив, що містить дані про повідомлення:
array( 'setting' => $setting, 'code' => $code, 'message' => $message, 'type' => $type );
Використання
get_settings_errors($ setting, $sanitize);
-
$setting
(рядок) -
Ідентифікатор, який повинен збігатися з $setting з
add_settings_error() . Буде отримано зазначену групу помилок. Якщо не вказати жодного ідентифікатора, то функція отримає всі зареєстровані помилки.
За замовчуванням: ” -
$ Sanitize
(логічний) -
Чи потрібно очистити значення опції вказаної опції: true (так, очистити ще раз) або false (ні, очищати не треба). невідомі функції опцій потрібно реєструвати окремо, див. опис sanitize_option()). Якщо опція не проходить перевірку, автоматично реєструється повідомлення про помилку. Це може стати в нагоді, коли потрібно перевірити дані форми до того, як вони зберігатимуться, наприклад, при простому заході на сторінку налаштувань. Повідомлення виводяться щоразу, коли в масиві помилок є зареєстровані повідомлення.
Типово: false
Приклади
#1 Приклад роботи функції
Виведемо повідомлення для поля опції “my_option_name”, які були зареєстровані при спробі зберегти опцію. Якщо значення полів опції не пройшли перевірку, повідомлення про помилку були зареєстровані функцією add_settings_error() під час перевірки даних форми, збереження опцій. Після того, як дані форми були надіслані, ми можемо отримати ці повідомлення функцією get_settings_errors() і вивести їх через хук admin_notices
. Для цього напишемо свою функцію, що обробляє результат get_settings_errors() і виводить всі повідомлення на екран:
function your_admin_notices_action() { $settings_errors = get_settings_errors( 'my_option_name' ); if ( empty( $settings_errors ) ) return; $output = ''; foreach ( $settings_errors as $key => $details ) { $css_id = 'setting-error-' . $details['code']; $css_class = $details['type'] . 'settings-error'; $output .= "<div id='$css_id' class='$css_class'> n"; $output .= "<p><strong>{$details['message']}</strong></p>"; $output .= "</div> n"; } echo $output; } add_action( 'admin_notices', 'your_admin_notices_action' );
Це просто демонстрація роботи функції. Зареєстровані повідомлення автоматично виводяться WordPress при збереженні даних, для цього потрібно просто перевірити дані перед збереженням та зареєструвати повідомлення функцією add_settings_error(), якщо потрібно. Окремо виводити повідомлення, як у цьому прикладі, зазвичай, немає необхідності.
нотатки
- Global. Масив. $wp_settings_errors Storage array of errors затриманий протягом цієї pageload
список змін
З версії 3.0.0 | Введено. |