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 | Введено. |