Salveaza un fisier trimis dintr-o cerere POST si creeaza un post de atasament pentru acesta.
Parametri # Parametri
- $ file_id
-
(sir) (Obligatoriu) Indexul matricei $ _FILES care a fost trimis fisierul. Necesar.
- $ post_id
-
(int) (Obligatoriu) ID-ul postarii unei postari la care se ataseaza elementul media. Obligatoriu, dar poate fi setat la 0, creand un element media care nu are nicio relatie cu o postare.
- $ post_data
-
(matrice) (Optional) Suprascrieti o parte din atasament.
Valoare implicita: array ()
- $ suprascrie
-
(matrice) (Optional) Inlocuiti comportamentul wp_handle_upload ().
Valoare implicita: matrice (‘test_form’ => false)
Sus ↑
Intoarceti # Intoarceti
(int | WP_Error) ID-ul atasamentului sau a unui obiect WP_Error la esec.
Sus ↑
Sursa #Sursa
Fisier: wp-admin / includes / media.php
functie media_handle_upload ($ file_id, $ post_id, $ post_data = array (), $ overrides = array (‘test_form’ => false)) {$ time = current_time (‘mysql’); $ post = get_post ($ post_id); if ($ post) {// Data postarii nu conteaza de obicei pentru pagini, asa ca nu actualizati inapoi aceasta incarcare. if (‘pagina’! == $ post-> post_type && substr ($ post-> post_date, 0, 4)> 0) {$ time = $ post-> post_date; }} $ file = wp_handle_upload ($ _FILES [$ file_id], $ overrides, $ time); if (isset ($ file [‘error’]))) {returneaza WP_Error nou (‘upload_error’, $ file [‘error’]); } $ nume = $ _FILES [$ fisier_id] [‘nume’]; $ ext = pathinfo ($ nume, PATHINFO_EXTENSION); $ nume = wp_basename ($ nume, “. $ ext”); $ url = $ fisier [‘url’]; $ type = $ fisier [‘type’]; $ file = $ file [‘file’]; $ title = sanitize_text_field ($ nume); $ content = “; $ extras = “; if (preg_match (‘# ^ audio #’, $ type)) {$ meta = wp_read_audio_metadata ($ fisier); if (! goal ($ meta [‘title’])) {$ title = $ meta [‘title’]; } if (! goal ($ title)) {if (! empty ($ meta [‘album’]) &&! empty ($ meta [‘artist’])) {/ * translators: 1: Titlul piesei audio, 2: Titlul albumului, 3: numele artistului. * / $ content. = sprintf (__ (‘”% 1 $ s” de la% 2 $ s cu% 3 $ s.’), $ title, $ meta [‘album’], $ meta [‘artist’]) ; } elseif (! goal ($ meta [‘album’])) {/ * translators: 1: Titlul piesei audio, 2: Titlul albumului. * / $ content. = sprintf (__ (‘”% 1 $ s” de la% 2 $ s.’), $ title, $ meta [‘album’]); } elseif (! goal ($ meta [‘artist’])) {/ * traducatori: 1: Titlul piesei audio, 2: numele artistului. * / $ content. = sprintf (__ (‘”% 1 $ s” cu% 2 $ s.’), $ title, $ meta [‘artist’]); } else {/ * translators:% s: titlul piesei audio. * / $ content. = sprintf (__ (‘”% s”.’), $ title); }} elseif (! gol ($ meta [‘album’]))) {if (! gol ($ meta [‘artist’])) {/ * traducatori: 1: Titlul albumului audio, 2: Numele artistului. * / $ content. = sprintf (__ (‘% 1 $ s cu% 2 $ s.’), $ meta [‘album’], $ meta [‘artist’]); } else {$ content. = $ meta [‘album’]. „.”; }} elseif (! goal ($ meta [‘artist’])) {$ content. = $ meta [‘artist’]. „.”; } if (! empty ($ meta [‘year’])) {/ * translators: Informatii despre fisierele audio. % d: Anul lansarii piesei audio. * / $ content. = “”. sprintf (__ (‘Lansat:% d.’ ), $ meta [‘anul’]); } if (! goal ($ meta [‘track_number’])) {$ track_number = explode (‘/’, $ meta [‘track_number’]); if (isset ($ track_number [1])) {/ * translators: Informatii despre fisierele audio. 1: numarul piesei audio, 2: totalul pieselor audio. * / $ content. = “”. sprintf (__ (‘Track% 1 $ s of% 2 $ s.’), number_format_i18n ($ track_number [0]), number_format_i18n ($ track_number [1])); } else {/ * translators: informatii despre fisierele audio. % s: numarul piesei audio. * / $ content. = “”. sprintf (__ (‘Track% s.’), number_format_i18n ($ track_number [0])); }} if (! goal ($ meta [‘gen’]))) {/ * traducatori: informatii despre genul fisierului audio. % s: numele genului audio. * / $ content. = “”. sprintf (__ (‘Gen:% s.’), $ meta [‘gen’]); } // Utilizati date exif / iptc de imagine pentru valorile implicite ale titlului si subtitrarii, daca este posibil. } elseif (0 === strpos ($ type, ‘image /’)) {$ image_meta = wp_read_image_metadata ($ file); if ($ image_meta) {if (trim ($ image_meta [‘title’]) &&! is_numeric (sanitize_title ($ image_meta [‘title’]))) {$ title = $ image_meta [‘title’]; } if (trim ($ image_meta [‘caption’])) {$ extras = $ image_meta [‘caption’]; }}} // Construiti matricea de atasamente. $ attachment = array_merge (array (‘post_mime_type’ => $ type, ‘guid’ => $ url, ‘post_parent’ => $ post_id, ‘post_title’ => $ title, ‘post_content’ => $ content, ‘post_excerpt’ => $ extras,), $ post_data); // Acest lucru nu trebuie setat niciodata, deoarece ar suprascrie apoi un atasament existent. unset ($ atasament [‘ID’]); // Salvati datele. $ attachment_id = wp_insert_attachment ($ atasament, $ fisier, $ post_id, adevarat); if (! is_wp_error ($ attachment_id)) {// Setati un antet personalizat cu atasamentul_id. // Folosit de browser / client pentru a relua crearea de sub-dimensiuni de imagine dupa o eroare fatala PHP. if (! headers_sent ()) {header (‘X-WP-Upload-Attachment-ID:’. $ attachment_id); } // Sub-dimensiunile imaginii sunt create in timpul wp_generate_attachment_metadata (). // Acest lucru este in general lent si poate provoca expirari sau erori de memorie. wp_update_attachment_metadata ($ attachment_id, wp_generate_attachment_metadata ($ attachment_id, $ fisier)); } returneaza $ attachment_id; } is_wp_error ($ attachment_id)) {// Setati un antet personalizat cu attachment_id. // Folosit de browser / client pentru a relua crearea de sub-dimensiuni de imagine dupa o eroare fatala PHP. if (! headers_sent ()) {header (‘X-WP-Upload-Attachment-ID:’. $ attachment_id); } // Sub-dimensiunile imaginii sunt create in timpul wp_generate_attachment_metadata (). // Acest lucru este in general lent si poate provoca expirari sau erori de memorie. wp_update_attachment_metadata ($ attachment_id, wp_generate_attachment_metadata ($ attachment_id, $ fisier)); } returneaza $ attachment_id; } is_wp_error ($ attachment_id)) {// Setati un antet personalizat cu atasamentul_id. // Folosit de browser / client pentru a relua crearea de sub-dimensiuni de imagine dupa o eroare fatala PHP. if (! headers_sent ()) {header (‘X-WP-Upload-Attachment-ID:’. $ attachment_id); } // Sub-dimensiunile imaginii sunt create in timpul wp_generate_attachment_metadata (). // Acest lucru este in general lent si poate provoca expirari sau erori de memorie. wp_update_attachment_metadata ($ attachment_id, wp_generate_attachment_metadata ($ attachment_id, $ fisier)); } returneaza $ attachment_id; } // Acest lucru este in general lent si poate provoca expirari sau erori de memorie. wp_update_attachment_metadata ($ attachment_id, wp_generate_attachment_metadata ($ attachment_id, $ fisier)); } returneaza $ attachment_id; } // Acest lucru este in general lent si poate provoca expirari sau erori de memorie. wp_update_attachment_metadata ($ attachment_id, wp_generate_attachment_metadata ($ attachment_id, $ fisier)); } returneaza $ attachment_id; }
Extindeti codul sursa complet Reduceti codul sursa complet Vizualizati pe Trac
Sus ↑
Changelog #Changelog
Jurnalul de modificari Descrierea versiunii 2.5.0 Introducere.
Sus ↑
Note Contribuite de Utilizatori # Note Contribuite de Utilizatori