So verhindern Sie, dass options.php gültige vorhandene Daten aus der database löscht

Ich richte ein Plugin ein und habe die Einstellungs-API zum ersten Mal benutzt, um ein Formular in den Einstellungen zu erstellen. Die Daten für das Plugin werden standardmäßig erstellt, wenn das Plugin aktiviert und in der database in einem serialisierten Format gespeichert wird.

Heute habe ich die validations-Callback-function hinzugefügt, die für die validation gut funktioniert. Wenn jedoch ein Feld die validation nicht besteht und die function false zurückgibt (ich habe auch versucht, NULL zurückzugeben), werden die vorhandenen gültigen Daten in der database gelöscht.

Frage ist das, wie Dinge passieren sollen oder mache ich etwas Dummes? Ich hätte in dieser Situation erwartet, dass die existierenden gültigen Daten in der database so lange unverändert geblieben wären, bis der Benutzer einen Satz gültiger Daten präsentiert hat, um ihn zu ändern.

Irgendwelche Vorschläge geschätzt.

Solutions Collecting From Web of "So verhindern Sie, dass options.php gültige vorhandene Daten aus der database löscht"

Ihre function ” sanitize_callback sollte nicht ” false oder ” null anzuzeigen, dass die Eingabe nicht gültig ist – sie soll immer einen gültigen Wert zurückgeben. Der von dieser function zurückgegebene Wert ist der Wert, der in der database gespeichert wird. Um etwas wirklich zu bereinigen, muss etwas zurückgegeben werden, das Sinn ergibt. Vergleichen Sie es mit intval wie in diesem Beispiel , wodurch die Einstellungs-API unabhängig von der Eingabe einen int Wert speichert.

Wie auch immer, um dein Problem zu lösen, solltest du:

  • Gibt den zuvor gespeicherten Wert zurück, wenn die Eingabe ungültig ist
  • Gibt einen Standardwert zurück, wenn die Eingabe leer ist (und leere Werte nicht erlaubt sind)
  • Gibt den neu eingegebenen Wert zurück, wenn dies als gültig angesehen wird

Zusätzlich zu der letzten Aussage kann Ihr Wert auch während der Sanierung gültig werden: Stellen Sie sich Eingaben wie " user@host.com" oder "0123" die je nach "user@host.com" und 123 "user@host.com" könnten Deine Bedürfnisse.