私はプラグインを設定していて、設定でフォームを作成するために設定APIを初めて使用しました。プラグインのデータは、プラグインがアクティブ化されてシリアル化フォーマットでデータベースに格納されると、デフォルトで最初に作成されます。
今日は検証コールバック関数を追加しました。ただし、いずれかのフィールドが検証に失敗して関数がfalseを返した場合(私もNULLを返してみました)、データベース内の既存の有効なデータは削除されます。
問題はこういうことだと思いますか、それとも私は愚かなことをしているのでしょうか。このような状況では、データベース内の既存の有効なデータは、ユーザーがそれを変更するために一連の有効なデータを提示するまでは変更されないままであることが予想されます。
任意の提案は大歓迎です。
sanitize_callback
関数は、入力が無効であることを示すfalse
やnull
を返すべきではありません。その目的は、常に常に有効な値を返すことです。この関数によって返される値はデータベースに保存されるものなので、実際にサニタイズするためには意味のあるものを返す必要があります。 この例 のようにintval
を使用するのと比較してください。これにより、設定APIは入力に関係なくint
値を格納するようになります。
とにかく、あなたの問題を解決するためにあなたはすべきこと:
また、最後のステートメントに加えて、あなたの値は衛生状態で有効になるかもしれません:あなたのニーズに応じて" [email protected]"
や"0123"
にサニタイズされるかもしれない"[email protected]"
や123
といった入力を想像してください。