Yüklemelerde dizin oluşturuluyor - wp_mkdir_p () veya WP_Filesystem?


9

Daha önce WP'de klasör / dosya oluşturmak için pratik bir ihtiyaç duyduğumu sanmıyorum, ancak bir eklenti için önbellek (yeniden boyutlandırılmış görüntüler için) klasörüne ihtiyacım var wp-content/uploads.

Hangi soruyu gündeme getiriyor - gerçekten tüm süreçten Filesystem APIgeçmem gerekiyor mu (gerektiğinde FTP kimlik bilgilerini sormak da dahil) veya wp_mkdir_p()bunun için yeterince iyi mi?

Yanıtlar:


7

wp-content/uploads/sunucu için yazılabilir olmalıdır (aksi takdirde dosya yüklemek imkansızdır, hayır?). Bu dizinin altında bir şey yaratacaksanız, kullanmak güvenlidir wp_mkdir_p().

Ben sadece WP_Filesystemsunucu wp-content/plugins/için yazılabilir olmak zorunda (en azından ben böyle olması gerekmiyor mu?), Olduğu gibi, konuma yazmak için izinleri olmayan bir şans varsa kullanabilirsiniz .

Sidenote: Codex'un Dosya İzinleri sayfası da bir dizinden bahseder wp-content/cache/. Bu, önbellek dosyaları için "daha standart" bir yer olabilir mi?


Emin değilim ama sanırım cachesayfa önbellekleme eklentileri gibi şeyler hakkında daha fazla bilgi, benim durum imajların alternatif sürümleri hakkında daha fazla ... Bu klasörler arasındaki ayrım teknik yerine semantik görünüyor, hayır?
Nadir

6

Sonsuz olasılıklar / barındırma kurulumları denizi ile uğraşmadan önce basit bir şey denerdim:

$target = 'wherever';
wp_mkdir_p( $target );

if ( wp_mkdir_p( $target ) === TRUE )
{
    echo "Folder $target successfully created";
}
else
{
    new WP_Error; #... etc. Just tell where the user has to make a new folder with the name xy
    // or if you're kool, you use _doing_it_wrong(); ... ;-)
}

Btw: Test edilmedi ve wp_mkdir_p();idamdan sonra kontrol edilebileceği veya if ifadesinin içinde fn'nin yürütülmesi gerekip gerekmediğine dair hiçbir fikrim yok ... şimdi).
kaiser

İlgili işlevsellik bir çeşit back-end-ish ... Etkileşimi en aza indirmek istiyorum. Eklentinin ayarındaki mesaj dikkate değer olsa da.
Nadir

Bunun hakkında fazla düşünmezdim. Kullanıcılar sys varsayılan değerlerle yapamazsa, onlara ne yapacaklarını söylemeye çalışın. Dediğim gibi: Olasılıklar sonsuzdur ve imho sadece kod veya destek yoluyla ateş etmek sorun olarak denemeye devam etmek için sonucun ne olması gerektiğini söyleyerek daha iyi.
kaiser

4

Sadece eklentinizin dosya / klasör oluşturmasına dikkat edin: eklentim de bunu yaptı ve farklı kullanıcılar için dosya izinleriyle ilgili bir dizi sorunla karşılaştım. Bazıları pencereler, bazıları unix, bazıları barındırılıyor ve bazıları evde yetiştiriliyor. Eklentiyi paylaştığımda 1 numaralı destek e-postamdı.

Dosya sistemlerine dokunma ihtiyacını en aza indirgemek için kodumu yeniden düzenledim ve yükleme dizini bu tür sorunları önlemek için şimdi kullandığım SADECE.


Evet, anlıyorum, bu yüzden soru sormaya zahmet ediyorum. Konuyla ilgili şu anki genel uploadsbakışım, WP'nin başarısız olması için yeterince kilitli ise , eklentinin daha fazlasını denemesinin bir anlamı yok. Ve eğer WP için yeterince iyi ise, eklenti için yeterince iyi. Neyse ki sadece her yerde önbellek dizini gerekir ve daha karmaşık ve hatalara eğilimli bir şey değil.
Rarst
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.