Intereting Posts
Как получить список пользовательских таксономий на основе пользовательского типа сообщений Загрузка изображений с носителя происходит в неправильной папке Горячая ссылка на youtube Перепишите действие, как предполагалось, но не меняя URL-адрес Каков наилучший способ создать экземпляр класса плагина в вашей теме WordPress? Плагин – создать страницу без ее появления в боковом меню Уведомлять несколько адресов электронной почты в комментариях Как изменить настройки администратора моего плагина, чтобы плагин можно было добавить на конкретную страницу? Функциональность плагина только для редактора и администратора Ошибка 404 для импорта JQuery «jquery-1.10.2.min.map» Попытка отображения всех сообщений в категории скрипт wp localize не работает в пользовательском запросе AJAX Сбой сайта при обновлении до WordPress (версия 3.6) Параметры экземпляра виджета не отображаются правильно Могу ли я использовать $ wpdb для моих собственных таблиц в базе данных WordPress?

Как предотвратить удаление options.php существующих данных из базы данных

Я настраиваю плагин и впервые использовал API установки, чтобы создать форму в настройках. Данные для плагина изначально создаются по умолчанию, когда плагин активирован и хранится в базе данных в сериализованном формате.

Сегодня я добавил функцию обратного вызова валидации, которая отлично работает для проверки. Однако, когда какое-либо поле не проходит проверку и функция возвращает false (я также пытался вернуть NULL), существующие достоверные данные в базе данных удаляются.

Вопрос в том, как все должно случиться, или я делаю что-то глупое? В этой ситуации я ожидал, что существующие достоверные данные в базе данных останутся неизменными до тех пор, пока пользователь не представит набор достоверных данных для его изменения.

Любые предложения оценили.

Solutions Collecting From Web of "Как предотвратить удаление options.php существующих данных из базы данных"

Функция sanitize_callback не должна возвращать значение false или null указывающее, что вход недействителен – его цель – всегда возвращать действительное значение. Значение, возвращаемое этой функцией, будет тем, что будет сохранено в базе данных, поэтому для того, чтобы на самом деле санировать что-либо, он должен будет вернуть что-то, что имеет смысл. Сравните это с использованием intval как в этом примере , что заставит API-интерфейс настроек хранить значение int независимо от того, что вводится.

В любом случае, чтобы решить вашу проблему, вы должны:

  • Возврат ранее сохраненного значения, если вход недействителен
  • Возвращает значение по умолчанию, если ввод пуст (и пустые значения не разрешены)
  • Верните новое входное значение, если оно считается действительным

Кроме того, в дополнение к последнему заявлению, ваша ценность может стать действительной во время санитарии: представить себе такие данные, как " user@host.com" или "0123" которые могут быть подвергнуты санитарной обработке на "user@host.com" и 123 зависимости от твои нужды.