Intereting Posts
Установить порядок предметов с помощью wp_nav_menu _ {$ menu-> slug} _items Изменить постоянную ссылку типа персонализированного сообщения, чтобы отображать имя сообщения из другого настраиваемого типа сообщений? Добавьте косую черту в категории url (укажите одну версию URL-адреса) Сколько людей может одновременно использовать одну и ту же учетную запись WordPress? Сообщения, показывающие в нем Можно ли исправить URL-адрес администратора за прокси-сервером без взлома ядра? SEO-изображения в галереях Nextgen Контактная информация нижний колонтитул Как настроить раскладку сетки в реактивном плагине WordPress Пользовательская таксономия Почему я заблокирован из системы? Правильные постоянные ссылки и ошибка 404 Как создать специфический для темы перевод buddypress? Multisite, не может видеть суб блоги Инструментарий социального обмена не отображается при загрузке ajax

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