Programlı olarak resimleri URL'ye göre alın ve yüklemeler klasörüne kaydedin


14

Başka bir CMS'den WordPress'e büyük bir geçiş yapıyorum. Veritabanının bir kopyasına sahibiz ve wpdbsınıfın örneğini kullanarak içeriği nasıl ayıklayacağımızı ve programlı olarak WordPress yayınlarını nasıl oluşturacağımızı öğrendik .

Ancak, yaklaşık bir hafta işten tasarruf etmek için otomatik olarak çekmek, çeşitli boyutlar oluşturmak ve daha sonra direklere bağlamak istediğimiz birkaç bin resim var!

URL ile uzak bir siteden resim alıp wp-uploads klasörüme kaydetmenin bir yolu var mı? Sanırım bu kullanır wp_httpama bilmiyorum.

Görüntüyü alıp kaydettikten sonra wp_generate_attachment_metadata, çeşitli boyutları oluşturmak ve wp_insert_attachmentbir mesaja eklemek için kullanabileceğim için iyiyim .

Teşekkürler Simon

Yanıtlar:


29

Aslında bu üç şeyin hepsini sizin için yapacak harika bir fonksiyon var:

media_sideload_image( $url, $post_id, $description );

İlk argüman indirmek istediğiniz görüntünün uzak url'sidir. İkinci argüman, görüntüyü eklemek istediğiniz yayının posta kimliğidir. Üçüncü argüman isteğe bağlıdır, ancak dahil edilirse bir açıklama olacaktır.

Yüklemede çektiği görüntü sayısını sınırlamak ve ithalatçıyı indirmeler arasında kendini yenilemek için ayarlamak veya bunları yapmak için AJAX kullanmak gibi, zamanlamayı dışarıda tutmak için indirmeleri kısaltmanın bir yolunu öneririm. zaman uyumsuz olarak.


1
Bu kesinlikle harika John, çok teşekkür ederim - mükemmel çalışıyor. bize ayrıntıları kontrol etmek ve herhangi bir sorunlu olanları not etmek için bize bir şans vermek için her yazı ithalat sonra bir tuşa basmayı beklemek için ayarladığım gibi daralma bir sorun değildir.
Ocak'ta Simon Blackbourn

1
ekin başka bir gönderiye bağlanması için ihtiyacım olduğu için, bunu yapmanın iyi bir yolu var
axel

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.