Intereting Posts
Как ограничить категорию пользовательских сообщений Мой плагин не может видеть мои файлы Плагин: регистрируйте настраиваемые типы сообщений, готовые к работе и лучшие результаты Запросить несколько настраиваемых типов сообщений в одном цикле Установите дату по умолчанию в datepicker для настраиваемого поля WordPress добавляет параметры к теме, не отображающей Перезаписать функцию XMLRPC по умолчанию из плагина Восстановить блог WordPress от неактивного имени домена Контактная форма 7 в пользовательском файле php Использует ли WordPress MultiSite отдельные базы данных MySql? Как планировать публикацию автопоста каждые 60 минут? Перенаправление на домашнюю страницу при сохранении любого отредактированного кода Подделка события «onSave» Как получить 5 последних комментариев и каждого комментария 5 последних ответов (детей) Как я должен структурировать сложные иерархии контента?

Как предотвратить удаление 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 зависимости от твои нужды.