การสร้างไดเรกทอรีในการอัปโหลด - wp_mkdir_p () หรือ WP_Filesystem?


9

ฉันไม่คิดว่าฉันเคยมีความจำเป็นในการปฏิบัติเพื่อสร้างโฟลเดอร์ / ไฟล์ใน WP ก่อน แต่สำหรับความต้องการที่แคชปลั๊กอิน I (สำหรับการปรับขนาดภาพ) wp-content/uploadsในโฟลเดอร์

คำถามใดที่ทำให้ฉันต้องผ่านกระบวนการทั้งหมดด้วยFilesystem API(รวมถึงการขอข้อมูลประจำตัว FTP เมื่อจำเป็น) อย่างยุ่งเหยิงหรือwp_mkdir_p()ดีพอสำหรับเรื่องนี้?

คำตอบ:


7

wp-content/uploads/ควรเขียนได้สำหรับเซิร์ฟเวอร์ (ไม่เช่นนั้นจะเป็นไปไม่ได้ที่จะอัปโหลดไฟล์ไม่ใช่?) wp_mkdir_p()หากคุณกำลังจะสร้างบางสิ่งบางอย่างภายใต้ไดเรกทอรีนี้มันมีความปลอดภัยในการใช้งาน

ฉันจะใช้เฉพาะในWP_Filesystemกรณีที่มีโอกาสที่เซิร์ฟเวอร์ไม่ได้รับอนุญาตให้เขียนไปยังตำแหน่งเช่นเดียวกับในwp-content/plugins/ซึ่งไม่จำเป็นต้องเขียนทับเซิร์ฟเวอร์ (อย่างน้อยฉันคิดว่ามันไม่จำเป็นต้องเป็น?)

Sidenote: หน้าสิทธิ์สำหรับไฟล์ของ Codexยังพูดถึงwp-content/cache/ไดเรกทอรี นี่จะเป็นตำแหน่ง "มาตรฐานเพิ่มเติม" สำหรับไฟล์แคชหรือไม่


ฉันไม่แน่ใจ แต่ฉันคิดว่าcacheเป็นเรื่องเกี่ยวกับสิ่งต่างๆเช่นปลั๊กอินการแคชหน้าในขณะที่กรณีของฉันเกี่ยวกับรูปภาพเวอร์ชันอื่น ... ความแตกต่างระหว่างโฟลเดอร์เหล่านี้ดูเหมือนความหมายมากกว่าเชิงเทคนิคใช่ไหม?
Rarst

6

ฉันจะลองอะไรที่ง่าย ๆ ก่อนที่จะไปยุ่งกับทะเลเซ็ปเซต / โฮสติ้งที่ไม่มีที่สิ้นสุด:

$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: มันไม่ได้ทำการทดสอบและฉันก็ไม่รู้ว่าจะบันทึกwp_mkdir_p();สามารถตรวจสอบได้หลังจากการดำเนินการหรือถ้าการดำเนินการของ fn ควรอยู่ในคำสั่ง if ... (ไม่เคยใช้มาก่อนและไม่รู้เกี่ยวกับฟังก์ชั่นจนกระทั่ง ตอนนี้)
ไกเซอร์

ฟังก์ชั่นที่เกี่ยวข้องเป็นแบ็คเอนด์ ish ... ฉันต้องการลดการโต้ตอบ แม้ว่าข้อความในการตั้งค่าปลั๊กอินนั้นควรค่าแก่การพิจารณา
Rarst

ฉันจะไม่คิดมากเกี่ยวกับเรื่องนี้มากเกินไป หากผู้ใช้ sys ไม่สามารถทำได้ด้วยค่าเริ่มต้นลองบอกพวกเขาว่าจะทำอย่างไร อย่างที่ฉันพูดไว้: Possibilites นั้นไม่มีที่สิ้นสุดและ imho คุณทำได้ดีกว่าด้วยการบอกว่าผลลัพธ์ควรจะดำเนินการต่อไปอย่างไรเมื่อพยายามแก้ไขปัญหานี้ผ่านรหัสหรือการสนับสนุน
ไกเซอร์

4

เพียงแค่หัวขึ้นในการมีปลั๊กอินของคุณสร้างไฟล์ / โฟลเดอร์: ปลั๊กอินของฉันก็ทำเช่นนั้นและฉันพบปัญหามากมายเกี่ยวกับการอนุญาตไฟล์สำหรับผู้ใช้ที่แตกต่างกัน บางหน้าต่างเป็นบางยูนิกซ์บางโฮสต์และบางบ้านโต มันเป็นอีเมลสนับสนุนอันดับ 1 ของฉันเมื่อฉันแชร์ปลั๊กอิน

ฉันได้ปรับโครงสร้างโค้ดใหม่เพื่อลดความจำเป็นในการสัมผัสกับระบบไฟล์และไดเรกทอรีอัปโหลดเป็นเพียงหนึ่งเดียวที่ฉันใช้ตอนนี้เพื่อหลีกเลี่ยงปัญหาดังกล่าว


ใช่ฉันเข้าใจว่านั่นเป็นเหตุผลที่ฉันรำคาญที่จะถามคำถาม ภาพรวมของปัญหาในปัจจุบันของฉันคือถ้าหากuploadsล็อคไว้ไม่เพียงพอที่ WP จะล้มเหลวก็ไม่มีความจำเป็นที่ปลั๊กอินจะต้องลองอีกต่อไป และถ้ามันดีพอสำหรับ WP มันก็ดีพอสำหรับปลั๊กอิน โชคดีที่ฉันต้องการแคชไดเรกทอรีที่ใดก็ได้และไม่ใช่สิ่งที่ซับซ้อนและมีแนวโน้มที่จะเกิดข้อผิดพลาด
Rarst
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.