Einfache Formularvalidierung für benutzerdefinierte Post-Typ im Front-End. functioniert nicht

Es funktioniert also alles außer der validation. Die Fehlermeldungen werden nicht angezeigt, wenn das Formular leer gesendet wird, und Sie können das Formular weiterhin senden, wenn es leer ist. Ich muss etwas wirklich Offensichtliches vermissen. Ich habe schon ein paar Stunden damit verbracht, das Internet zu durchsuchen und habe einige Fehler selbst ausprobiert. Jede Hilfe würde wirklich geschätzt werden.

  

Send Us Your Testimonial

$title, 'post_content' => $description, 'post_status' => 'publish', // Switch this to draft if you want to moderate posts 'post_type' => 'testimonial' //post type to insert the post into ); //SAVE THE POST $pid = wp_insert_post($new_testimonial); // Upload image for post thumbnail if (!function_exists('wp_generate_attachment_metadata')){ require_once(ABSPATH . "wp-admin" . '/includes/image.php'); require_once(ABSPATH . "wp-admin" . '/includes/file.php'); require_once(ABSPATH . "wp-admin" . '/includes/media.php'); } if ($_FILES) { foreach ($_FILES as $file => $array) { if ($_FILES[$file]['error'] !== UPLOAD_ERR_OK) { return "upload error : " . $_FILES[$file]['error']; } $attach_id = media_handle_upload( $file, $pid ); } } if ($attach_id > 0){ //and if you want to set that image as Post then use: update_post_meta($pid,'_thumbnail_id',$attach_id); } include 'validate-image-size.php'; //Redirect to the new post on save $link = get_permalink( $pid ); wp_redirect( $link ); }} // End of the if statement that started the form and the end of the shortcode [testimonial-form] //post the post do_action('wp_insert_post', 'wp_insert_post');`

Solutions Collecting From Web of "Einfache Formularvalidierung für benutzerdefinierte Post-Typ im Front-End. functioniert nicht"

Ihre validation funktioniert nicht, weil die Variablen mit dem leeren Array mit isset den Wert true zurückgeben.

Gehen Sie zu http://writecodeonline.com/php/ und versuchen Sie diesen Code, und Sie werden verstehen:

 $test = ""; if ( isset($test) ){ echo "true"; } 

Die richtige function dafür anstelle von isset ist leer. Versuch es:

 $test = ""; if ( empty($test) ){ echo "empty"; } 

Wenn Sie in WordPress viel modellieren und validieren, empfehle ich Ihnen den wunderbaren PHPActiveRecord. Ich habe gelernt, wie man es hier benutzt , und ich bin in es verliebt. 🙂