データ登録時のエラー処理を変更する

WordPress

これまでの開発ではデータ登録時のエラー処理は、古典的(?)な書き方で入力チェック→エラー内容表示を行っていました。

wordpressには元々エラー処理用のクラスがあるので、それに置き換えてみようと思います。

まずは、入力画面から登録ボタンを押した際の、確認画面の処理を見直します。

//エラー処理を入れる為のオブジェクト生成
$error = new WP_Error();

//入力値チェック(複数のエラーチェックをここで行う)
if (!strlen($_POST["sample_name"])) {
    $error->add("error", "名前を入力してください");
}
if (!strlen($_POST["sample_text"])) {
    $error->add("error", "テキストを入力してください");
}

//エラーコードがある場合は、登録画面を再表示する
if ($error->get_error_code()) {
    //ここで改めて登録フォームを表示する
}

まず、「$error = new WP_Error();」とすることで、エラー処理用のクラスを呼び、オブジェクトを生成しておきます。

次に、入力値チェックを行います。
入力値のチェック方法は色々あると思いますが、ここでは「strlen」を使って単純に文字列(の長さ)があるか無いかで判定しています。
(チェック用の関数の使い方は、別方法がありますが、ここでは割愛いたします)

最後に、「$error->get_error_code()」でエラーだった場合のコードを取得し、エラー表示を行うか、どうかの判定をします。

エラーだった場合は、改めて登録フォームを表示します。

次に、エラー時の登録フォーム側のプログラムを調整します。

//エラー処理
if ($error->get_error_codes()) {
    echo "<div class='error'>";
    echo "<ul>";
    foreach ($error->get_error_messages() as $value) {
        echo "<li>" . esc_html($value) . "</li>";
    }
    echo "</ul>";
    echo "</div>";
}

$errorオブジェクトを渡し、エラーコードの有無を判定します。
エラーだった場合、エラー内容をエラーの個数分表示しています。

具体的な画面は次のようになります。

入力フォームの初期画面

エラーだった場合の再表示画面

エラーメッセージの表示時のクラス名

<div class='error'>

はwordpressに標準搭載されているcssのクラス名なので、画面のエラー文言の表現が統一されて便利です。

また、

<div class='updated'>

というクラス名もあり、その場合は正常に更新されたケースで使用するとよいです。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です