Створення каталогу для завантажень - wp_mkdir_p () або WP_Filesystem?


9

Я не думаю, що раніше у мене не було практичної необхідності створювати папки / файли в WP, але для плагіна мені потрібна папка кешу (для розмірів зображень) wp-content/uploads.

Звідки виникає питання - чи мені справді потрібно пройти весь процес Filesystem API(включаючи безладний запит FTP, коли це потрібно), чи wp_mkdir_p()достатньо для цього?

Відповіді:


7

wp-content/uploads/має бути доступним для запису на сервер (інакше було б неможливо завантажити файл, ні?). Якщо ви збираєтесь створити щось під цим каталогом, це безпечно для використання wp_mkdir_p().

Я використовував би лише WP_Filesystemте, що є шанс, що сервер не має дозволу писати в місцеположення, як, наприклад, в wp-content/plugins/, яке не повинно бути написаним для сервера (принаймні, я думаю, це не повинно бути?).

Сторінка : Сторінка файлових дозволів Codex також розповідає про wp-content/cache/каталог. Це було б "більш стандартне" місце для файлів кешу?


Я не впевнений, але я думаю, cacheце більше про такі речі, як плагіни кешування сторінок, в той час як мій випадок стосується більше альтернативних версій зображень ... Відмінність цих папок здається семантичним, а не технічним, ні?
Рарст

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 ... (ніколи раніше не використовував його і навіть не знав про саму функцію, поки зараз).
кайзер

Пов'язана функціональність є своєрідною підтримкою ... Я хотів би мінімізувати інтерактивність. Хоча повідомлення в налаштуваннях плагіна варто врахувати.
Рарст

Я б не надто думав про це. Якщо користувачі не можуть зробити це зі значеннями за замовчуванням, спробуйте сказати їм, що робити. Як я вже сказав: Можливості є нескінченними, і вам краще просто сказати, який результат має бути продовжений, щоб спробувати усунути це через код або підтримку.
кайзер

4

Тільки голова над тим, щоб ваш плагін створював файли / папки: мій плагін також робив це, і я зіткнувся з низкою проблем з дозволами на файли для різних користувачів. Деякі - це вікна, деякі - Unix, деякі - хостинг, а деякі - домашні. Коли я поділився плагіном, це мій електронний лист із підтримкою №1.

Я відремонтував свій код, щоб мінімізувати необхідність торкатися файлових систем, а каталог завантажень - ТІЛЬКИЙ, який я використовую зараз, щоб уникнути подібних проблем.


Так, я це розумію, тому я намагаюся задавати питання. Мій поточний огляд проблеми полягає в тому, що якщо uploadsзаблоковано достатньо, щоб WP вийшов з ладу, плагін не має сенсу намагатися робити більше. І якщо він достатньо хороший для WP, то він достатньо хороший для плагіна. На щастя, мені просто потрібен каталог кешу в будь-якому місці, а не щось складніше і схильне до помилок.
Rarst
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.