Pregunta

No creo que haya tenido una necesidad práctica de crear carpetas/archivos en WP antes, pero para un complemento necesito la carpeta de caché (para imágenes redimensionadas) en wp-content/uploads.

Que plantea la pregunta: ¿realmente necesito pasar por todo el proceso con Filesystem API (incluido el pedido desordenado de credenciales FTP cuando sea necesario), o wp_mkdir_p() ¿Es lo suficientemente bueno para esto?

¿Fue útil?

Solución

wp-content/uploads/ Debería ser escritura para el servidor (de lo contrario, sería imposible cargar un archivo, ¿no?). Si va a crear algo en este directorio, es seguro usarlo wp_mkdir_p().

Solo usaría WP_Filesystem Si existe la posibilidad de que el servidor no tenga permisos para escribir en la ubicación, como en wp-content/plugins/, que no tiene que ser escritos para el servidor (al menos creo que no tiene que serlo?).

Nota al margen: La página de permisos de archivo del códice También habla de un wp-content/cache/ directorio. ¿Sería esta una ubicación "más estándar" para los archivos de caché?

Otros consejos

Intentaría algo simple, antes de jugar con un interminable mar de posibilidades/configuraciones de alojamiento:

$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(); ... ;-)
}

Solo un aviso de hacer que su complemento cree archivos/carpetas: mi complemento también lo hizo y me encontré con una gran cantidad de problemas con los permisos de archivos para diferentes usuarios. Algunas son ventanas, otras son UNIX, otras están alojadas y algunas de casa. Fue mi correo electrónico de soporte #1 una vez que compartí el complemento.

He refactorado mi código para minimizar la necesidad de tocar los sistemas de archivos y el directorio de carga es el único que uso ahora para evitar tales problemas.

Licenciado bajo: CC-BY-SA con atribución
scroll top