Już miałam przestać myśleć, że to nie jest możliwe, a przynajmniej łatwe, a potem natknąłem się na wp_handle_upload_prefilterfiltr, który daje dokładnie to, o co prosiłeś! Oto kod:
add_filter('wp_handle_upload_prefilter','yoursite_wp_handle_upload_prefilter');function yoursite_wp_handle_upload_prefilter($file){// This bit is for the flash uploaderif($file['type']=='application/octet-stream'&& isset($file['tmp_name'])){
$file_size = getimagesize($file['tmp_name']);if(isset($file_size['error'])&& $file_size['error']!=0){
$file['error']="Unexpected Error: {$file_size['error']}";return $file;}else{
$file['type']= $file_size['mime'];}}
list($category,$type)= explode('/',$file['type']);if('image'!=$category ||!in_array($type,array('jpg','jpeg','gif','png'))){
$file['error']="Sorry, you can only upload a .GIF, a .JPG, or a .PNG image file.";}elseif($post_id =(isset($_REQUEST['post_id'])? $_REQUEST['post_id']:false)){if(count(get_posts("post_type=attachment&post_parent={$post_id}"))>0)
$file['error']="Sorry, you cannot upload more than one (1) image.";}return $file;}
A oto kilka zrzutów ekranu pokazujących, jak to wygląda w akcji:
Dzięki Mike. Wygląda na to, że działa w trybie przesyłania innym niż flash, ale użycie wersji flash pokazuje: ... Przepraszamy, możesz przesłać tylko plik obrazu .GIF, .JPG lub .PNG.
@ José Pablo Orozco Marín - Dziękujemy za znalezienie mojego błędu. Myślę, że znalazłem problem i opublikowałem nowszą wersję kodu, który moim zdaniem działa teraz dla programu ładującego flash. Daj mi znać!
Używamy plików cookie i innych technologii śledzenia w celu poprawy komfortu przeglądania naszej witryny, aby wyświetlać spersonalizowane treści i ukierunkowane reklamy, analizować ruch w naszej witrynie, i zrozumieć, skąd pochodzą nasi goście.
Kontynuując, wyrażasz zgodę na korzystanie z plików cookie i innych technologii śledzenia oraz potwierdzasz, że masz co najmniej 16 lat lub zgodę rodzica lub opiekuna.