私は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>
functions.php
でこれを使用すると、おそらく$error
をglobal
に宣言する必要があります。
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
には、データを取得できるメソッドがあります。