✅ Nowości, motywy, wtyczki WEB i WordPress. Tutaj dzielimy się wskazówkami i najlepszymi rozwiązaniami dla stron internetowych.

Programowe przesyłanie plików w WordPress

53

Ostatnio pracowałem nad projektem, w którym chcieliśmy wgrać obrazy w niestandardowym folderze. Nie chcemy używać domyślnej struktury przesyłania WordPress, w której wszystkie Twoje obrazy są przechowywane w formacie rocznym. Zamiast tego chcieliśmy stworzyć własny folder w katalogu „uploads" i przechowywać w nim obrazy. Wymaga ode mnie napisania programu, który może przesyłać pliki za pomocą formularza HTML.

W tym artykule dowiemy się, jak programowo przesyłać pliki w WordPressie. Pokażę Ci dwa sposoby wykonania tego zadania. Jedna to wbudowana funkcja wp_upload_bits(), a druga metoda move_uploaded_file().

Programowe przesyłanie plików w WordPress

Aby rozpocząć, utwórz prosty formularz HTML z wejściem pliku i przyciskiem przesyłania. Możesz umieścić ten formularz na swojej stronie lub w poście.

<h2>Upload a File</h2> <form method="post" enctype="multipart/form-data">     <input type="file" name="file" required />     <input type="submit" name="upload_file" value="Upload" /> </form>

Prześlij plik za pomocą wp_upload_bits

Używając wp_upload_bits()funkcji, twój plik będzie przechowywany w katalogu uploads. Swój plik znajdziesz w folderze bieżącego roku i miesiąca (np. wp-content/uploads/2020->03->your_file). Ta funkcja nie przenosi przeglądanego pliku do folderu przesyłania. Zamiast tego utworzy nowy plik z zawartością plików. Zastosowanie tej metody jest proste. W swoim functions.phppliku dodaj kod w następujący sposób.

<?php function fn_upload_file() {     if (isset($_POST['upload_file'])) {         $upload = wp_upload_bits($_FILES['file']['name'], null, $_FILES['file']['tmp_name']);         // save into database $upload['url]     } } add_action('init', 'fn_upload_file');

Jeśli wydrukujesz $uploadzmienną, otrzymasz tablicę zawierającą katalog i ścieżkę URL przesłanego pliku. Użytkownik może zapisać ścieżkę URL w bazie danych za pomocą $upload['url].

Prześlij plik do katalogu niestandardowego

Jak wspomniano powyżej, przy użyciu wp_upload_bits()metody Twoje pliki będą przechowywane przy użyciu domyślnej hierarchii folderów WordPress. Ale co, jeśli chcesz przechowywać pliki we własnym katalogu?

W takim przypadku musisz utworzyć własny folder w katalogu „przesyłane” i przenieść plik do tego folderu. Załóżmy, że chcesz przechowywać pliki w katalogu „uploads/product-images”. W poniższym kodzie utworzymy środowisko uruchomieniowe folderu „product-images” i będziemy przechowywać w nim pliki. Ten kod również możesz zapisać w functions.phppliku.

function fn_upload_file() {     if (isset($_POST['upload_file'])) {         $upload_dir = wp_upload_dir();           if (! empty( $upload_dir['basedir'])) {             $user_dirname = $upload_dir['basedir'].'/product-images';             if (! file_exists( $user_dirname)) {                 wp_mkdir_p( $user_dirname );             }               $filename = wp_unique_filename( $user_dirname, $_FILES['file']['name'] );             move_uploaded_file($_FILES['file']['tmp_name'], $user_dirname .'/'. $filename);             // save into database $upload_dir['baseurl'].'/product-images/'.$filename;         }     } } add_action('init', 'fn_upload_file');

Tutaj używam metody wp_unique_filename(), która daje unikalną nazwę pliku dla danego katalogu.

Otóż ​​to! Chodzi o to, jak programowo przesyłać pliki w WordPressie. Czy używasz innej metody do podobnego zadania? Udostępnij w sekcji komentarzy poniżej.

Powiązane artykuły

Źródło nagrywania: artisansweb.net

Ta strona korzysta z plików cookie, aby poprawić Twoje wrażenia. Zakładamy, że nie masz nic przeciwko, ale możesz zrezygnować, jeśli chcesz. Akceptuję Więcej szczegółów