WordPress Upload File Secara Terprogram: 3 Cara Praktis

Diterbitkan: 2022-10-20

Secara default, WordPress mendukung pengunggahan file melalui perpustakaan media atau layar edit posting. Saat Anda mengunggah file ke situs web Anda menggunakan fungsi bawaan ini, WordPress menangani semuanya untuk Anda. Ini memungkinkan Anda untuk melihat semua file yang diunggah dan memasukkannya ke dalam posting atau halaman Anda.

Namun, Anda memerlukan lebih dari itu dalam hal fungsionalitas khusus, seperti unggahan file frontend. Ada banyak plugin yang tersedia yang membantu Anda menambahkan, memodifikasi, dan mengelola file Anda tanpa menyesuaikan kode. Tentu saja, kebanyakan dari mereka membutuhkan biaya.

Jika Anda tidak ingin membayar plugin, mengunggah file secara terprogram ke situs WordPress Anda bisa menjadi solusi. Dalam artikel ini, kami akan memandu Anda tentang cara mencapainya secara detail.

Mari kita mulai!

  • Sedikit Pemberitahuan
  • #1 Unggah File ke Pustaka Media Secara Terprogram dari URL
  • #2 Tambahkan File melalui Formulir HTML
  • #3 Sisipkan File ke Galeri Kustom Secara Terprogram
  • Kiat Bonus: Lindungi Unggahan File Anda

Sedikit Pemberitahuan

Metode ini terutama mengganggu kode. Jadi, silakan ikut serta dalam teknik ini hanya jika Anda memiliki pengetahuan pengkodean. Jika tidak, seluruh situs Anda dapat runtuh hanya dengan satu perubahan kecil yang tidak tepat.

Jika Anda baru memulai dengan WordPress, kami sangat menyarankan plugin Gravity Forms untuk menerima unggahan file frontend. Atau, lihat 5 plugin teratas untuk unggahan file frontend WordPress. Anda juga dapat menggunakan klien FTP untuk mengunggah file dari backend.

Namun, ingin mempelajari cara mengunggah file secara terprogram di WordPress? Baca terus!

#1 Unggah File ke Pustaka Media Secara Terprogram dari URL

Anda menjelajahi internet dan menemukan gambar hebat yang ingin Anda unggah ke perpustakaan media WordPress Anda. Berikut rute untuk melakukannya:

  1. Salin URL gambar.
  2. Sematkan kode di bawah ini ke situs Anda dan masukkan URL yang telah Anda salin:
 /**
* Unggah gambar dari URL secara terprogram
*
* @penulis Misha Rudrastyh
* @link https://rudrastyh.com/wordpress/how-to-add-images-to-media-library-from-uploaded-files-programmatically.html#upload-image-from-url
*/
fungsi rudr_upload_file_by_url( $image_url ) {

// memungkinkan kita untuk menggunakan fungsi download_url() dan wp_handle_sideload()
require_once( ABSPATH . 'wp-admin/includes/file.php' );

// unduh ke temp dir

$temp_file = download_url( $image_url );

if( is_wp_error( $temp_file ) ) {
kembali salah;
}

// pindahkan file temp ke direktori unggahan
$file = array(
'nama' => nama dasar( $image_url ),
'type' => mime_content_type( $temp_file ),
'tmp_name' => $temp_file,
'ukuran' => ukuran file( $temp_file ),
);
$sideload = wp_handle_sideload(
$berkas,
Himpunan(
'test_form' => false // tidak perlu memeriksa parameter 'action'
)
);

if( ! kosong( $sideload[ 'kesalahan' ] ) ) {
// Anda dapat mengembalikan pesan kesalahan jika Anda mau
kembali salah;
}

// saatnya untuk menambahkan gambar yang kami unggah ke perpustakaan media WordPress
$attachment_id = wp_insert_attachment(
Himpunan(
'guid' => $sideload[ 'url' ],
'post_mime_type' => $sideload[ 'type' ],
'post_title' => nama dasar( $sideload[ 'file' ] ),
'post_content' => '',
'post_status' => 'mewarisi',
),
$sideload[ 'berkas']
);

if( is_wp_error( $attachment_id ) || ! $attachment_id ) {
kembali salah;
}

// perbarui metadata, buat ulang ukuran gambar
require_once( ABSPATH . 'wp-admin/include/image.php' );

wp_update_attachment_metadata(
$attachment_id,
wp_generate_attachment_metadata( $attachment_id, $sideload[ 'file' ] )
);

kembalikan $attachment_id;
}

Itu dia!

#2 Tambahkan File melalui Formulir HTML

Metode kedua adalah membuat form HTML sederhana dengan input file dan tombol submit. Anda dapat menempatkan formulir ini di halaman atau pos mana pun, yang memungkinkan pengguna mengunggah file ke situs Anda. Ambil langkah-langkah berikut untuk mengunggah file secara terprogram di WordPress melalui formulir HTML:

  1. Sematkan kode berikut untuk membuat formulir HTML sederhana:
 1 <h2>Unggah File</h2>
2 <form method="post" enctype="multipart/form-data">
3 <input type="file" name="file" diperlukan />
4 <input type="kirim" nama="upload_file" value="Upload" />
5 </form>

Dengan menggunakan fungsi wp_upload_bits() , WordPress akan secara otomatis menyimpan file yang Anda unggah di dalam direktori unggahan . Anda dapat menemukan file Anda di dalam folder tahun-bulan saat ini, misalnya, wp-content/uploads/2020->03->your_file .

2. Masukkan kode ini ke dalam file functions.php Anda:

 1 <?php
2 fungsi fn_upload_file() {
3 jika ( isset($_POST['upload_file']) ) {
4 $upload = wp_upload_bits($_FILES['file']['name'], null, $_FILES['file']['tmp_name']);
5 // simpan ke database $upload['url]
6 }
7 }
8 add_action('init', 'fn_upload_file');

Jika Anda mencetak variabel $upload , Anda akan mendapatkan array yang berisi direktori dan URL file yang diupload. Pengguna dapat menemukan dan menyimpan URL ini di database menggunakan $upload['url] .

Seperti disebutkan di atas, setelah menggunakan metode wp_upload_bits() , file Anda akan disimpan dalam hierarki folder WordPress default. Tetapi bagaimana jika Anda ingin menyimpan file di dalam direktori Anda sendiri?

Dalam situasi itu, Anda harus membuat folder khusus di direktori unggahan dan memindahkan file ke dalamnya. Katakanlah Anda ingin menyimpan file Anda di dalam direktori uploads/product-images . Dengan kode di bawah ini, Anda dapat membuat folder product-images dan menyimpan file di dalamnya.

Tulis kode dalam file functions.php :

 1 fungsi fn_upload_file() {
2 jika ( isset($_POST['upload_file']) ) {
3 $upload_dir = wp_upload_dir();
4
5 jika ( ! kosong( $upload_dir['basedir'] ) ) {
6 $user_dirname = $upload_dir['basedir'].'/product-images';
7 jika ( ! file_exists( $user_dirname ) ) {
8 wp_mkdir_p( $user_dirname );
9 }
10
11 $namafile = wp_unique_filename( $user_dirname, $_FILES['file']['name'] );
12 move_uploaded_file($_FILES['file']['tmp_name'], $user_dirname .'/'. $filename);
13 // simpan ke database $upload_dir['baseurl'].'/product-images/'.$filename;
14 }
15 }
16 }
17 add_action('init', 'fn_upload_file');

Di sini, kami menerapkan teknik wp_unique_filename() untuk memberikan nama file unik ke direktori yang diberikan.

#3 Sisipkan File ke Galeri Kustom Secara Terprogram

Mari kita asumsikan bahwa Anda memiliki galeri yang ditambahkan sebagai bidang meta khusus yang disebut "galeri". Anda mengunggah banyak gambar melalui media_sideload_image() . Kemudian, buat serial ID mereka dan masukkan ke galeri dengan update_post_meta( $post_id , 'gallery', $serialized) ;

Akibatnya, ketika Anda melihat posting di halaman Edit posting backend, Anda akan melihat semua foto yang diunggah. Namun, gambar-gambar ini tidak akan ditampilkan dalam tampilan slide di frontend sampai Anda menekan Update di backend.

Jadi, bagaimana Anda bisa mengklik tombol Perbarui secara terprogram setelah Anda membuat galeri? Cukup ikuti panduan di bawah ini:

  1. Setelah Anda memperbarui galeri posting, tambahkan kode ini untuk memilih tombol Perbarui secara terprogram:
 wp_update_post(['ID'=>$post_id]);

2. Perbarui cache untuk menggunakan fungsi pencarian dan filter:

 do_action('search_filter_update_post_cache', $post_id);

Kiat Bonus: Lindungi Unggahan File Anda

Apakah ada cara untuk mencegah akses tidak sah ke file yang Anda unggah? Jawabannya iya. Untuk informasi lebih lanjut, silakan lihat panduan terperinci kami tentang 21 trik .htaccess yang berguna untuk mengamankan file WordPress. Karena .htaccess adalah file penting yang membuat situs Anda berjalan dengan lancar, berhati-hatilah saat membuat perubahan apa pun.

Di sisi lain, instal plugin PDA Gold jika Anda tidak yakin dengan kemampuan coding Anda. Ini akan membantu Anda menangani kerumitan tanpa khawatir akan mempengaruhi file .htaccess.

Metode lain yang layak dipertimbangkan adalah melindungi file WordPress Anda dengan kata sandi. Lihat artikel kami untuk lebih jelasnya.

Unggah File Secara Terprogram di WordPress Seperti Pakar!

Kami telah menunjukkan kepada Anda 3 cara untuk mengunggah file secara terprogram di WordPress. Sekarang, Anda dapat dengan mudah mengunggah file ke perpustakaan media atau melalui formulir unggah file frontend HTML. Menambahkan file ke galeri kustom Anda juga dapat dilakukan. Dan yang paling penting, jangan lupa untuk melindungi file WordPress Anda baik menggunakan kode atau menginstal plugin.

Ini semua tentang cara mengunggah file secara terprogram di WordPress. Apakah Anda tahu metode lain? Silakan berbagi dengan kami di bagian komentar di bawah.