WordPress Dosyayı Programlı Olarak Yükleyin: 3 Pratik Yol

Yayınlanan: 2022-10-20

Varsayılan olarak WordPress, medya kitaplığı veya düzenleme sonrası ekranı aracılığıyla dosya yüklemeyi destekler. Bu yerleşik işlevleri kullanarak web sitenize dosya yüklediğinizde, WordPress her şeyi sizin için halleder. Yüklenen tüm dosyaları görüntülemenize ve bunları yazılarınıza veya sayfalarınıza eklemenize olanak tanır.

Ancak, ön uç dosya yüklemeleri gibi özel işlevler söz konusu olduğunda bundan daha fazlasına ihtiyacınız var. Kodu ayarlamadan dosyalarınızı eklemenize, değiştirmenize ve yönetmenize yardımcı olan birçok eklenti vardır. Tabii ki, çoğu bir ücret gerektirir.

Eklentiler için ödeme yapmak istemiyorsanız, dosyaları programlı olarak WordPress sitenize yüklemek bir çözüm olabilir. Bu yazıda, bunu nasıl başaracağınız konusunda size ayrıntılı olarak rehberlik edeceğiz.

Başlayalım!

  • Küçük Bir Uyarı
  • #1 Dosyaları Medya Kitaplığına Programlı Olarak URL'lerden Yükleme
  • #2 HTML Formu ile Dosya Ekleme
  • #3 Programlı Olarak Özel Galeriye Dosya Ekleme
  • Bonus İpucu: Dosya Yüklemelerinizi Koruyun

Küçük Bir Uyarı

Bu yöntem esas olarak koda müdahale eder. Bu nedenle, lütfen bu tekniğe yalnızca biraz kodlama bilginiz varsa katılın. Aksi takdirde, sitenizin tamamı sadece küçük bir yanlış değişiklikle çökebilir.

WordPress'e yeni başladıysanız, ön uç dosya yüklemelerini kabul etmek için Gravity Forms eklentisini şiddetle öneririz. Veya WordPress ön uç dosya yüklemeleri için en iyi 5 eklentiye göz atın. Arka uçtan dosya yüklemek için bir FTP istemcisi de kullanabilirsiniz.

Yine de, dosyaları WordPress'te programlı olarak nasıl yükleyeceğinizi öğrenmek ister misiniz? Okumaya devam et!

#1 Dosyaları Medya Kitaplığına Programlı Olarak URL'lerden Yükleme

İnternette geziniyor ve WordPress medya kitaplığınıza yüklemek istediğiniz harika görseller buluyorsunuz. İşte bunu yapmanın yolu:

  1. Resmin URL'sini kopyalayın.
  2. Aşağıdaki kodu sitenize yerleştirin ve kopyaladığınız URL'yi ekleyin:
 /**
* URL'den programlı olarak resim yükleyin
*
* @yazar Misha Rudrastyh
* @link https://rudrastyh.com/wordpress/how-to-add-images-to-media-library-from-uploaded-files-programmatical.html#upload-image-from-url
*/
işlev rudr_upload_file_by_url( $image_url ) {

// download_url() ve wp_handle_sideload() fonksiyonlarını kullanmamıza izin veriyor
require_once(ABSPATH. 'wp-admin/includes/file.php');

// temp dizinine indir

$temp_file = download_url( $image_url);

if( is_wp_error( $temp_file )) {
yanlış döndür;
}

// geçici dosyayı uploads dizinine taşı
$dosya = dizi(
'isim' => basename( $image_url ),
'type' => mime_content_type( $temp_file ),
'tmp_name' => $temp_file,
'size' => dosya boyutu( $temp_file ),
);
$yan yük = wp_handle_sideload(
$dosya,
dizi(
'test_form' => false // 'action' parametresini kontrol etmeye gerek yok
)
);

if( ! boş( $yan yük[ 'hata' ] ) ) {
// isterseniz hata mesajı döndürebilirsiniz
yanlış döndür;
}

// yüklediğimiz resmi WordPress medya kitaplığına eklemenin zamanı geldi
$attachment_id = wp_insert_attachment(
dizi(
'guid' => $yan yük[ 'url' ],
'post_mime_type' => $sideload[ 'type' ],
'post_title' => basename( $sideload[ 'file' ] ),
'post_content' => '',
'post_status' => 'devral',
),
$yan yük[ 'dosya' ]
);

if( is_wp_error( $attachment_id ) || ! $attachment_id ) {
yanlış döndür;
}

// meta verileri güncelle, görüntü boyutlarını yeniden oluştur
require_once(ABSPATH. 'wp-admin/include/image.php');

wp_update_attachment_metadata(
$ek_kimliği,
wp_generate_attachment_metadata( $attachment_id, $sideload[ 'dosya' ] )
);

$attachment_id döndür;
}

Bu kadar!

#2 HTML Formu ile Dosya Ekleme

İkinci yöntem, dosya girişi ve gönder düğmesi ile basit bir HTML formu oluşturmaktır. Bu formu, kullanıcıların sitenize dosya yüklemesine izin veren herhangi bir sayfaya veya gönderiye yerleştirebilirsiniz. Dosyaları bir HTML formu aracılığıyla programlı olarak WordPress'e yüklemek için aşağıdaki adımları izleyin:

  1. Basit bir HTML formu oluşturmak için aşağıdaki kodu gömün:
 1 <h2>Bir Dosya Yükleyin</h2>
2 <form method="post" enctype="multipart/form-data">
3 <input type="file" name="file" gerekli />
4 <input type="submit" name="upload_file" value="Yükle" />
5 </form>

wp_upload_bits() işlevini kullanarak, WordPress yüklenen dosyalarınızı otomatik olarak yüklemeler dizininde saklar. Dosyalarınızı mevcut yıl-ay klasöründe bulabilirsiniz, örneğin wp-content/uploads/2020->03->your_file .

2. Bu kodu function.php dosyanıza ekleyin:

 1 <?php
2 işlev fn_upload_file() {
3 if ( isset($_POST['upload_file']) ) {
4 $upload = wp_upload_bits($_FILES['file']['name'], null, $_FILES['file']['tmp_name']);
5 // veritabanına kaydedin $upload['url]
6 }
7 }
8 add_action('init', 'fn_upload_file');

$upload değişkenini yazdırırsanız, dizini ve yüklenen dosyaların URL'lerini içeren bir dizi alırsınız. Kullanıcılar bu URL'leri $upload['url] kullanarak bulabilir ve veritabanına kaydedebilir.

Yukarıda bahsedildiği gibi, wp_upload_bits() yöntemini kullandığınızda dosyalarınız varsayılan WordPress klasör hiyerarşisinde depolanacaktır. Peki ya dosyaları kendi dizininize kaydetmek isterseniz?

Bu durumda, uploads dizininde özel bir klasör oluşturmalı ve dosyaları bu klasöre taşımalısınız. Diyelim ki dosyalarınızı uploads/product-images dizini içinde depolamak istiyorsunuz. Aşağıdaki kod ile product-images klasörünü oluşturabilir ve içindeki dosyaları saklayabilirsiniz.

Kodu function.php dosyasına yazın:

 1 işlev fn_upload_file() {
2 if ( isset($_POST['upload_file']) ) {
3 $upload_dir = wp_upload_dir();
4
5 if ( ! boş( $upload_dir['basedir'] ) ) {
6 $user_dirname = $upload_dir['basedir'].'/product-images';
7 if ( ! file_exists( $user_dirname ) ) {
8 wp_mkdir_p( $user_dirname );
9 }
10
11 $dosyaadı = wp_unique_filename( $user_dirname, $_FILES['dosya']['ad'] );
12 move_uploaded_file($_FILES['file']['tmp_name'], $user_dirname .'/'. $filename);
13 // veritabanına kaydedin $upload_dir['baseurl'].'/product-images/'.$filename;
14 }
15 }
16 }
17 add_action('init', 'fn_upload_file');

Burada, verilen dizine benzersiz bir dosya adı vermek için wp_unique_filename() tekniğini uyguluyoruz.

#3 Programlı Olarak Özel Galeriye Dosya Ekleme

Diyelim ki “galeri” adında özel bir meta alan olarak eklenen bir galeriniz var. media_sideload_image() yoluyla çok sayıda resim yüklersiniz. Ardından, kimliklerini seri hale getirin ve update_post_meta( $post_id , 'gallery', $serialized) ile galeriye ekleyin;

Sonuç olarak, arka uç Gönderiyi düzenle sayfasındaki gönderiye baktığınızda, yüklenen tüm fotoğrafları göreceksiniz. Ancak, arka uçta Güncelle'ye basana kadar bu resimler ön uçta bir slayt gösterisinde gösterilmeyecektir.

Peki, galeriyi oluşturduktan sonra programlı olarak Güncelle düğmesine nasıl tıklayabilirsiniz? Aşağıdaki kılavuzu takip etmeniz yeterlidir:

  1. Gönderi galerisini güncelledikten sonra, Güncelle düğmesini programlı olarak seçmek için bu kodu ekleyin:
 wp_update_post(['ID'=>$post_id]);

2. Arama ve filtreleme işlevlerini kullanmak için önbelleği güncelleyin:

 do_action('search_filter_update_post_cache', $post_id);

Bonus İpucu: Dosya Yüklemelerinizi Koruyun

Yüklenen dosyalarınıza yetkisiz erişimi engellemenin herhangi bir yolu var mı? Cevap Evet. Daha fazla bilgi için lütfen WordPress dosyalarının güvenliğini sağlamaya yönelik 21 kullanışlı .htaccess hilesiyle ilgili ayrıntılı kılavuzumuza bakın. .htaccess sitenizin sorunsuz çalışmasını sağlayan kritik bir dosya olduğundan, herhangi bir değişiklik yaparken dikkatli olun.

Öte yandan, kodlama becerilerinizden emin değilseniz PDA Gold eklentisini yükleyin. .htaccess dosyasını etkileme konusunda endişelenmeden güçlükle başa çıkmanıza yardımcı olacaktır.

Dikkate değer başka bir yöntem, WordPress dosyalarınızı parola ile korumaktır. Daha fazla ayrıntı için makalemize göz atın.

Bir Uzman Gibi WordPress'te Dosyaları Programlı Olarak Yükleyin!

WordPress'te programlı olarak dosya yüklemenin 3 yolunu gösterdik. Artık dosyaları medya kitaplığına veya bir HTML ön uç dosya yükleme formu aracılığıyla zahmetsizce yükleyebilirsiniz. Özel galerinize dosya eklemek de mümkündür. Ve en önemlisi, WordPress dosyalarınızı kod kullanarak veya eklentiler kurarak korumayı unutmayın.

Her şey WordPress'te programlı olarak dosyaların nasıl yükleneceği ile ilgili. Başka yöntemler biliyor musunuz? Lütfen aşağıdaki yorum bölümünde bizimle paylaşın.