• Saltar a la navegación principal
  • Saltar al contenido principal
  • Saltar a la barra lateral principal

DecodeCMS

Tu WordPress a otro Nivel ...

  • Acerca de
  • Contacto
  • Inicio
  • Tutoriales
    • Themes
    • Plugins
    • Core
    • Recursos
  • Cursos
  • Acceder
    • Mis cursos
    • Mi Cuenta
    • Acceder
Inicio / Tutoriales / Core / Subir archivos en WordPress a través de código

Subir archivos en WordPress a través de código

Subir archivos en WordPress a través de código

[ 14 diciembre 2021 ] [ Autor: Jhon Marreros Guzmán ][ Core - Avanzado] [ ]

funcionalidad

¿Me ayudas a llegar a más gente?

Twittear Compartir LinkedIn WhatsApp

En un artículo anterior habíamos visto como usar el Media Uploader de WordPress para subir archivos, sin embargo en este artículo veremos una manera alterna a través de código que nos permita personalizar la subida de archivos en WordPress.

 

Resultado Final

Al final lo que queremos obtener será algo similar a la siguiente imagen, en donde se muestra un formulario de subida de archivos:

Subida de archivos personalizada en WordPress

 

Código para subir archivos a WordPress

El siguiente código es parte del código de un plugin de ejemplo, te creará una nueva opción de menú bajo el menú de Herramientas y sirve como código base para la subida de archivos en WordPress usando PHP y funciones de WordPress.

<?php
/*
Plugin Name: Upload custom file
Plugin URI: https://decodecms.com
description: Demo plugin for uploading files with PHP
Version: 1.0
Author: Jhon Marreros
Author URI: https://decodecms.com
License: GPL2
*/

// Show Form
add_action( 'admin_menu', 'register_media_selector_settings_page' );

function register_media_selector_settings_page() {
	add_submenu_page( 'tools.php', 'Upload File', 'Upload File', 'manage_options', 'upload-file', 'dcms_upload_file_settings_callback' );
}

function dcms_upload_file_settings_callback() {
	?>
	<div class="wrap">
		<h1>Ejemplo de subida de archivo</h1>
		<br>
		<form enctype="multipart/form-data" method="post">
			Selecciona algún archivo: <input name="upload-file" type="file" /> <hr>
			<input type="submit" value="Enviar archivo" />
		</form>
	</div>
	<?php

	if(isset($_FILES['upload-file'])) {
		global $wp_filesystem;
		WP_Filesystem();

		$name_file = $_FILES['upload-file']['name'];
		$tmp_name = $_FILES['upload-file']['tmp_name'];
		$allow_extensions = ['xls', 'xlsx', 'csv'];

		// File type validation
		$path_parts = pathinfo($name_file);
		$ext = $path_parts['extension'];

		if ( ! in_array($ext, $allow_extensions) ) {
			echo "Error - File type not allowed";
			return;
		}

		$content_directory = $wp_filesystem->wp_content_dir() . 'uploads/archivos-subidos/';
		$wp_filesystem->mkdir( $content_directory );

		if( move_uploaded_file( $tmp_name, $content_directory . $name_file ) ) {
			echo "File was successfully uploaded";
		} else {
			echo "The file was not uploaded";
		}
	}
}

En el código anterior:

  • Todo el contenido se mostrará bajo la página que carga el enlace de menú creado
  • Creamos un formulario de subida de archivos con HTML
  • Verificamos si se envía un Post para procesar la subida de archivos
  • Recuperamos el nombre del archivo y nombre temporal
  • Validamos la extensión del archivo
  • Movemos el archivo temporal a la ubicación final
  • Comprobamos si hay errores o si se realizó correctamente

 

Puedes descargar el plugin desde el repositorio de GitHub: Upload-Custom-File-WordPress

 

Conclusión

La subida de archivos directamente con PHP puede que no sea tan visual, sin embargo te puede servir de base para construir algo más complejo en tus temas y plugins personalizados.

 
¿Aún con dudas?, en el siguiente video se explica más detalladamente.

Suscríbete a DecodeCMS:  

 

¿Me ayudas a llegar a más gente?

Twittear Compartir LinkedIn WhatsApp

Artículos Relacionados

  • Subir archivos en WordPress usando Ajax
  • Usar el Media Uploader de WordPress en tus plugins y temasUsar el Media Uploader de WordPress en tus plugins y temas
  • Shortcodes en WordPress cómo usarlosQué son los Shortcodes en WordPress y cómo usarlos
  • WordPress Multisite para gestionar una red de sitiosWordPress Multisite para gestionar una red de sitios
Valora este artículo : 1 barra2 barras3 barras4 barras5 barras (2 votos, promedio: 5,00 de 5)
Cargando...

Interacciones con los lectores

Comentarios

  1. Jhan Carlo

    27 abril, 2022

    Hola buenas tardes, una consulta: ¿Cómo puedo agregarlo como shortcode?

    • Jhon Marreros Guzmán

      27 abril, 2022

      Hola, te sugiero revises este artículo en donde se realiza algo similar con un Shortcode y Ajax: https://decodecms.com/subir-archivos-en-wordpress-usando-ajax/

  2. Niton Romero

    10 noviembre, 2022

    Si cargo un archivo con el mismo nombre se remplaza, si el archivo ya existe con el mismo nombre debería guardar con otro nombre.

    • Jhon Marreros Guzmán

      11 noviembre, 2022

      Hola, si quieres esa funcionalidad tendría que comprobar antes si el archivo con nombre $name_file ya existe y agregarle un número por ejemplo al nombre. Saludos.

Para escribir código envolver con: <pre class="language-xxx"><code> </code></pre> ,reemplaza las xxx (php, css, html)

*

* Gravatar habilitado

Barra lateral principal

Presentación

Curso Decodifica WordPress

Únete a DecodeCMS

Recibirás como regalo:

Guia práctica con video:
¿Quieres agregar código a WordPress? Revisa las diferentes opciones que tienes.Ver más

Jooble
Alojamiento Wordpress

Niveles

Básico Intermedio Avanzado

Etiquetas

accesibilidad css dashboard editor error funcionalidad herramientas imagen js librería mejoras optimización seguridad social woocommerce

Populares

Subcategorías en formato horizontal en página de categorías de WooCommerce

Leer datos desde otra base de datos en WordPress

Deshabilitar verificación del correo electrónico de administración

Post Meta desde la API de WordPress

© logo decode pie
Política de Privacidad | Política de devoluciones
Copyrigth 2023 Todos los derechos reservados