Cargar archivos mediante programación en WordPress
Recientemente, estaba trabajando en un proyecto en el que queríamos cargar imágenes en la carpeta personalizada. No queremos usar la estructura de carga predeterminada de WordPress donde todas sus imágenes se almacenan en un formato de año-mes. En cambio, queríamos crear nuestra propia carpeta dentro del directorio ‘uploads’ y almacenar imágenes en él. Requiere que escriba un programa que pueda cargar archivos a través del formulario HTML.
En este artículo, estudiamos cómo cargar archivos mediante programación en WordPress. Te mostraré dos formas de realizar esta tarea. Uno es a través de la función wp_upload_bits() incorporada y otro está usando el método move_upload_file ().
Cargar archivos mediante programación en WordPress
Para comenzar, cree un formulario HTML simple con entrada de archivo y botón de envío. Puede colocar este formulario en su página o publicación.
<h2>Upload a File</h2>
<form method="post" enctype="multipart/form-data">
<input type="file" name="file" required />
<input type="submit" name="upload_file" value="Upload" />
</form>
Cargar archivo usando wp_upload_bits
Usando la wp_upload_bits()
función, su archivo se almacenará dentro del directorio de cargas. Encontrará su archivo dentro de la carpeta del mes del año actual (por ejemplo, wp-content / uploads / 2020-> 03-> your_file). Esta función no moverá un archivo examinado a la carpeta de carga. En su lugar, creará un nuevo archivo con el contenido de los archivos. El uso de este método es sencillo. En su functions.php
archivo, agregue el código de la siguiente manera.
<?php
function fn_upload_file() {
if (isset($_POST['upload_file'])) {
$upload = wp_upload_bits($_FILES['file']['name'], null, $_FILES['file']['tmp_name']);
// save into database $upload['url]
}
}
add_action('init', 'fn_upload_file');
Si imprime la $upload
variable, obtendrá una matriz que contiene el directorio y la ruta URL del archivo cargado. El usuario puede guardar la ruta URL en la base de datos usando $upload['url]
.
Cargar archivo en el directorio personalizado
Como se mencionó anteriormente, usando el wp_upload_bits()
método, sus archivos se almacenarán usando la jerarquía de carpetas predeterminada de WordPress. Pero, ¿qué pasa si desea almacenar archivos dentro de su propio directorio?
En ese caso, debe crear su carpeta personalizada en el directorio ‘uploads’ y mover su archivo a esa carpeta. Supongamos que desea almacenar sus archivos dentro del directorio ‘uploads / product-images’. En el siguiente código, crearemos el tiempo de ejecución de la carpeta ‘product-images’ y almacenaremos los archivos en su interior. Este código también se puede escribir en el functions.php
archivo.
function fn_upload_file() {
if (isset($_POST['upload_file'])) {
$upload_dir = wp_upload_dir();
if (! empty( $upload_dir['basedir'])) {
$user_dirname = $upload_dir['basedir'].'/product-images';
if (! file_exists( $user_dirname)) {
wp_mkdir_p( $user_dirname );
}
$filename = wp_unique_filename( $user_dirname, $_FILES['file']['name'] );
move_uploaded_file($_FILES['file']['tmp_name'], $user_dirname .'/'. $filename);
// save into database $upload_dir['baseurl'].'/product-images/'.$filename;
}
}
}
add_action('init', 'fn_upload_file');
Aquí, estoy usando el método wp_unique_filename () que da el nombre de archivo único para el directorio dado.
¡Eso es! Se trata de cómo cargar archivos mediante programación en WordPress. ¿Está utilizando algún otro método para una tarea similar? Comparte en la sección de comentarios a continuación.
Artículos relacionados
- Cómo utilizar el método wp_get_image_editor para cambiar el tamaño de sus imágenes en WordPress
- Cómo registrar tamaños de imagen personalizados y cambiar el tamaño de imágenes existentes en WordPress
- Cómo configurar una imagen destacada mediante programación en WordPress