Wp die, вызывающий 500 внутренних ошибок сервера?

У меня есть функция для загрузки изображений внутри моих настроек API, он загружает изображения, как ожидалось, но проблема возникает, когда пользователь выбирает загружать файл без изображения, чтобы пользователи не загружали другие файлы (файлы без изображения). Я использую wp_die('No image found'); а это приводит к появлению подозрительного сообщения о внутренней внутренней сети . Странно то, что мой wp_die wp_die('No image found'); работает нормально на моем локальном компьютере, но не в Интернете .

 function validate_setting($plugin_options){ //echo '<pre>'; print_r($_FILES); echo '</pre>'; $keys = array_keys($_FILES); $i = 0; foreach ($_FILES as $image) { if($image['size']){ //Is it an image? if(preg_match('/(jpg|jpeg|png|gif)$/i',$image['type'])){ $override = array('test_form' => false); $file = wp_handle_upload($image,$override); $plugin_options[$keys[$i]] = $file['url']; } else{ wp_die('No image found');//This triggers 500 Internal Server Error WHY?? //echo:'no image found'; //Now this DON'T work locally but works ONLINE?!? } } else{ $options = get_option('theme_options'); $plugin_options[$keys[$i]] = $options[$keys[$i]]; } $i++; } return $plugin_options; } 

Я попытался изменить wp_die() чтобы echo 'no image found'; и это происходит: теперь на моей машине locall она ничего не выдает (ничего не отображается), но теперь он работает онлайн и отображает предупреждение «no image found» …

Я знаю, что могу просто удалить else{ wp_die('No image found'); } else{ wp_die('No image found'); } и не показывать предупреждения, но ПОЧЕМУ он не работает так, как предполагалось?

Может ли кто-нибудь сказать мне, что не так с моим кодом, и как правильно отображать предупреждение с помощью wp_die («Нет изображения») (не вызывая «500 Internal server error») ?

Использовать die($msg); делать то, что вы пытаетесь сделать. wp_die () возвращает код ошибки HTTP и передает ваше сообщение на страницу с ошибкой, а код по умолчанию – 500 (внутренняя ошибка сервера), если вы не устанавливаете код возврата в args.

Это работало очень хорошо для меня:

  else{ $error = new WP_Error( 'not_found', _('No image found! Please upload images only!'), array( 'title' => _('Plugin Error'), 'response' => '406', 'back_link' => true ) ); if( is_wp_error($error) ){ wp_die( $error, '', $error->get_error_data() ); } }