ユーザーが投稿できるカスタムのフロントエンドページがあります。すべてうまくいきますが、複数のフィールドが空の場合はすべての空のフィールドのエラーがすべて一緒に表示されます。今のところ、コードは最初に検出した空のフィールドに対してのみエラーを示しています。コードは次のとおりです。
$errors = new WP_Error();
if (isEmptyString($title_stripped))
$errors->add('empty_title', __('Please enter a title'));
if (isEmptyString($description_stripped))
$errors->add('empty_desc', __('Enter a breif description'));
if (isEmptyString($content_stripped))
$errors->add('empty_content', __('Please enter your article here'));
return $errors;
編集:解決済み
気にしてすみません。私の他の機能の1つで、エラーを1回だけエコーするように制限していました。これが前のコードです。
function display_message( $message = false ) {
if( is_wp_error( $message ) ) {
echo '<div class="error"><p>' . $message->get_error_message() . '</p></div>';
}
私もそれを変更したとき、それはうまくいきました:
function display_message( $message = false ) {
if( is_wp_error( $message ) ) {
echo '<div class="error"><p>';
foreach ( $message->get_error_messages($code) as $error ) {
echo $error . "<br />\n";
}
echo '</p></div>';
}
気にしてすみません。私の他の機能の1つで、エラーを1回だけエコーするように制限していました。これが前のコードです。
function display_message( $message = false ) {
if( is_wp_error( $message ) ) {
echo '<div class="error"><p>' . $message->get_error_message() . '</p></div>';
}
私もそれを変更したとき、それはうまくいきました:
function display_message( $message = false ) {
if( is_wp_error( $message ) ) {
echo '<div class="error"><p>';
foreach ( $message->get_error_messages($code) as $error ) {
echo $error . "<br />\n";
}
echo '</p></div>';
}