web-dev-qa-db-ja.com

WP_Errorクラスを使用してエラーメッセージを表示する方法

私はfunctions.phpファイルにこのような登録フォームコードを持っています

if ('POST' == $_SERVER['REQUEST_METHOD'] && !empty($_POST['action']) && $_POST['action'] == 'registration') {
       $error = new WP_Error();
        if (empty(esc_attr($_POST['email'])))
        {
            $error->add('regerror','Email is required.');
        }
        if (!is_email(esc_attr($_POST['email'])))
        {
            $error->add('regerror','Invalid email format.');

        }
        if (email_exists(esc_attr($_POST['email'])))
        {
            $error->add('regerror','Email already in use. Did you forget your Password? If yes click here to reset.');

        }
}

今すぐ誰かが私のregister pageにこれらのエラーメッセージを表示する方法を教えてもらえますか

更新:

私の登録ページはこのようなコードを持っています

<form method="post" action="<?php the_permalink(); ?>">
<!-- form fields goes here -->
<input name="action" type="hidden" value="registration" />
<input type="submit" id="submit" value="Register">
</form>
2
Giri

functions.phpでこれを使用すると、おそらく$errorglobalに宣言する必要があります。

if ('POST' == $_SERVER['REQUEST_METHOD'] && !empty($_POST['action']) && $_POST['action'] == 'registration') {
    global $error;
    $error = new WP_Error();
    // the rest of your code

そして、使用する前に登録ページでglobal $error;を再度実行します。

しかし、そのコードがfunctions.phpにある理由がわかりません。それは私にとって悪いデザインのようです。ページを読み込むたびに条件付きifを実行しており、登録ページでのみ必要なように聞こえますビルトインの登録/ログインページについてはwp-login.phpについて話していません。その仮定を考えると、そのコードを登録ページに移動するだけで簡単に利用できます。 WP_Errorには、データを取得できるメソッドがあります。

3
s_ha_dum