Intereting Posts
Какой плагин мог бы минимизировать Dashboard? добавив категорию в столбец администратора для пользовательского типа сообщения? Могут ли имя пользователя и пароль быть отправлены на страницу входа в WP в IFrame? Показать панель приветствия на панели инструментов для каждого пользователя используя проверенную функцию для проверки значения по массиву Ограничение страниц на основе иерархии и роли пользователя Показать только сообщения с изображениями и фиксированным количеством сообщений Вытянуть в выдержку с помощью короткого кода Как я могу отобразить описание изображения из галереи изображений? Запросить объект для validate_callback Несколько wp_query на странице архива оператор the_category if / else Изображения Отсутствуют из встроенной галереи WP Проверьте, отображается ли боковая панель? Как получить идентификаторы категории, которые добавляются в главное меню?

Простая проверка формы для пользовательского типа сообщения в интерфейсе. Не работает

Итак, все работает нормально, за исключением проверки. Сообщения об ошибках не отображаются, когда форма отправляется пустым, и вы все равно можете отправить форму, когда она пуста. Я должен упустить что-то действительно очевидное. Я уже провел несколько часов, прочесывая сеть и пробовал несколько исправлений самостоятельно безрезультатно. Любая помощь могла бы быть полезна.

<?php add_shortcode('testimonial-form', 'testimonial_form_sc') ?> <?php function testimonial_form_sc(){ ?> <div class="row"> <h3>Send Us Your Testimonial</h3> <form id="add_testimonial" name="add_testimonial" method="post" action="" enctype="multipart/form-data"> <!-- post name --> <label for="username" style="display:block">Name:</label> <input type="text" value="" name="username" style="display-block" /> <!-- post content --> <label for="description" style="display:block">Testimonial:</label> <textarea id="description" tabindex="15" name="description" cols="80" rows="10"></textarea> <input type="file" name="thumbnail" id="thumbnail"> <input class="small-button" type="submit" value="Send" id="submit" name="submit" style="display:block;"/> <input type="hidden" name="action" value="add_testimonial" /> <?php wp_nonce_field( 'new-post' ); ?> </form> </div> <?php if ( 'POST' == $_SERVER['REQUEST_METHOD'] && !empty( $_POST['action'] ) && $_POST['action'] == "add_testimonial") { // Do some minor form validation to make sure there is content if (isset ($_POST['username'])) { $title = $_POST['username']; } else { echo 'Please enter your name'; } if (isset ($_POST['description'])) { $description = $_POST['description']; } else { echo 'Please enter your testimonial'; } // add the form input to $new_testimonial array $new_testimonial = array( 'post_title' => $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 "Простая проверка формы для пользовательского типа сообщения в интерфейсе. Не работает"

Ваша проверка не работает, потому что переменные с пустым массивом возвращают true с isset;

Перейдите по адресу http://writecodeonline.com/php/ и попробуйте этот код, и вы поймете:

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

Правильная функция для него, а не isset, пуста. Попробуйте:

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

Кроме того, если вы делаете много моделирования и валидации в wordpress, я предлагаю использовать замечательный PHPActiveRecord. Я узнал, как использовать его здесь , и я в нее влюблен. 🙂