{"id":27968,"date":"2021-05-18T16:41:00","date_gmt":"2021-05-18T13:41:00","guid":{"rendered":"https:\/\/themewp.inform.click\/?p=27968"},"modified":"2021-10-17T16:59:47","modified_gmt":"2021-10-17T13:59:47","slug":"cargar-archivos-mediante-programacion-en-wordpress","status":"publish","type":"post","link":"https:\/\/themewp.inform.click\/es\/cargar-archivos-mediante-programacion-en-wordpress\/","title":{"rendered":"Cargar archivos mediante programaci\u00f3n en WordPress"},"content":{"rendered":"<p>Recientemente, estaba trabajando en un proyecto en el que quer\u00edamos cargar im\u00e1genes en la carpeta personalizada. No queremos usar la estructura de carga predeterminada de WordPress donde todas sus im\u00e1genes se almacenan en un formato de a\u00f1o-mes. En cambio, quer\u00edamos crear nuestra propia carpeta dentro del directorio &#8216;uploads&#8217; y almacenar im\u00e1genes en \u00e9l. Requiere que escriba un programa que pueda cargar archivos a trav\u00e9s del formulario HTML.<\/p>\n<p>En este art\u00edculo, estudiamos c\u00f3mo cargar archivos mediante programaci\u00f3n en WordPress. Te mostrar\u00e9 dos formas de realizar esta tarea. Uno es a trav\u00e9s de la funci\u00f3n <a href=\"https:\/\/developer.wordpress.org\/reference\/functions\/wp_upload_bits\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">wp_upload_bits()<\/a> incorporada y otro est\u00e1 usando el m\u00e9todo <a href=\"https:\/\/www.php.net\/manual\/en\/function.move-uploaded-file.php\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">move_upload_file ()<\/a>.<\/p>\n<h3>Cargar archivos mediante programaci\u00f3n en WordPress<\/h3>\n<p>Para comenzar, cree un formulario HTML simple con entrada de archivo y bot\u00f3n de env\u00edo. Puede colocar este formulario en su p\u00e1gina o publicaci\u00f3n.<\/p>\n<pre><code>&lt;h2&gt;Upload a File&lt;\/h2&gt;\n&lt;form method=\"post\" enctype=\"multipart\/form-data\"&gt;\n\u00a0\u00a0\u00a0\u00a0&lt;input type=\"file\" name=\"file\" required \/&gt;\n\u00a0\u00a0\u00a0\u00a0&lt;input type=\"submit\" name=\"upload_file\" value=\"Upload\" \/&gt;\n&lt;\/form&gt;<\/code><\/pre>\n<h4>Cargar archivo usando wp_upload_bits<\/h4>\n<p>Usando la <code>wp_upload_bits()<\/code>funci\u00f3n, su archivo se almacenar\u00e1 dentro del directorio de cargas. Encontrar\u00e1 su archivo dentro de la carpeta del mes del a\u00f1o actual (por ejemplo, wp-content \/ uploads \/ 2020-&gt; 03-&gt; your_file). Esta funci\u00f3n no mover\u00e1 un archivo examinado a la carpeta de carga. En su lugar, crear\u00e1 un nuevo archivo con el contenido de los archivos. El uso de este m\u00e9todo es sencillo. En su <code>functions.php<\/code>archivo, agregue el c\u00f3digo de la siguiente manera.<\/p>\n<pre><code>&lt;?php\nfunction fn_upload_file() {\n\u00a0\u00a0\u00a0\u00a0if (isset($_POST['upload_file'])) {\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0$upload = wp_upload_bits($_FILES['file']['name'], null, $_FILES['file']['tmp_name']);\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\/\/ save into database $upload['url]\n\u00a0\u00a0\u00a0\u00a0}\n}\nadd_action('init', 'fn_upload_file');<\/code><\/pre>\n<p>Si imprime la <code>$upload<\/code>variable, obtendr\u00e1 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 <code>$upload['url]<\/code>.<\/p>\n<h4>Cargar archivo en el directorio personalizado<\/h4>\n<p>Como se mencion\u00f3 anteriormente, usando el <code>wp_upload_bits()<\/code>m\u00e9todo, sus archivos se almacenar\u00e1n usando la jerarqu\u00eda de carpetas predeterminada de WordPress. Pero, \u00bfqu\u00e9 pasa si desea almacenar archivos dentro de su propio directorio?<\/p>\n<p>En ese caso, debe crear su carpeta personalizada en el directorio &#8216;uploads&#8217; y mover su archivo a esa carpeta. Supongamos que desea almacenar sus archivos dentro del directorio &#8216;uploads \/ product-images&#8217;. En el siguiente c\u00f3digo, crearemos el tiempo de ejecuci\u00f3n de la carpeta &#8216;product-images&#8217; y almacenaremos los archivos en su interior. Este c\u00f3digo tambi\u00e9n se puede escribir en el <code>functions.php<\/code>archivo.<\/p>\n<pre><code>function fn_upload_file() {\n\u00a0\u00a0\u00a0\u00a0if (isset($_POST['upload_file'])) {\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0$upload_dir = wp_upload_dir();\n\u00a0\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0if (! empty( $upload_dir['basedir'])) {\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0$user_dirname = $upload_dir['basedir'].'\/product-images';\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0if (! file_exists( $user_dirname)) {\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0wp_mkdir_p( $user_dirname );\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0}\n\u00a0\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0$filename = wp_unique_filename( $user_dirname, $_FILES['file']['name'] );\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0move_uploaded_file($_FILES['file']['tmp_name'], $user_dirname .'\/'. $filename);\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\/\/ save into database $upload_dir['baseurl'].'\/product-images\/'.$filename;\n\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0\u00a0}\n\u00a0\u00a0\u00a0\u00a0}\n}\nadd_action('init', 'fn_upload_file');<\/code><\/pre>\n<p>Aqu\u00ed, estoy usando el m\u00e9todo <a href=\"https:\/\/developer.wordpress.org\/reference\/functions\/wp_unique_filename\" target=\"_blank\" rel=\"noopener nofollow\" class=\"external external_icon\">wp_unique_filename ()<\/a> que da el nombre de archivo \u00fanico para el directorio dado.<\/p>\n<p>\u00a1Eso es! Se trata de c\u00f3mo cargar archivos mediante programaci\u00f3n en WordPress. \u00bfEst\u00e1 utilizando alg\u00fan otro m\u00e9todo para una tarea similar? Comparte en la secci\u00f3n de comentarios a continuaci\u00f3n.<\/p>\n<h4>Art\u00edculos relacionados<\/h4>\n<ul>\n<li><a href=\"https:\/\/themewp.inform.click\/es\/como-utilizar-el-metodo-wp_get_image_editor-para-cambiar-el-tamano-de-sus-imagenes-en-wordpress\/\" title=\"C\u00f3mo utilizar el m\u00e9todo wp_get_image_editor para cambiar el tama\u00f1o de sus im\u00e1genes en WordPress\">C\u00f3mo utilizar el m\u00e9todo wp_get_image_editor para cambiar el tama\u00f1o de sus im\u00e1genes en WordPress<\/a><\/li>\n<li><a href=\"https:\/\/themewp.inform.click\/es\/como-registrar-tamanos-de-imagen-personalizados-y-cambiar-el-tamano-de-imagenes-existentes-en-wordpress\/\" title=\"C\u00f3mo registrar tama\u00f1os de imagen personalizados y cambiar el tama\u00f1o de im\u00e1genes existentes en WordPress\">C\u00f3mo registrar tama\u00f1os de imagen personalizados y cambiar el tama\u00f1o de im\u00e1genes existentes en WordPress<\/a><\/li>\n<li><a href=\"https:\/\/themewp.inform.click\/es\/como-configurar-una-imagen-destacada-mediante-programacion-en-wordpress\/\" title=\"C\u00f3mo configurar una imagen destacada mediante programaci\u00f3n en WordPress\">C\u00f3mo configurar una imagen destacada mediante programaci\u00f3n en WordPress<\/a><\/li>\n<\/ul>\n<p><div id=\"PostUnique_PostSource\" style=\"padding-top: 50px\">Fuente de grabaci\u00f3n:  <a target=\"_blank\" rel=\"noopener nofollow\" href=\"\/\/artisansweb.net\" class=\"external external_icon\">artisansweb.net<\/a><\/div><\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u00bfC\u00f3mo manejar la tarea de carga de archivos de WordPress? En este art\u00edculo, explicamos c\u00f3mo cargar archivos program\u00e1ticamente en WordPress. Te mostrar\u00e9 como mover archivos<\/p>\n","protected":false},"author":1,"featured_media":21646,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"footnotes":"","_wp_rev_ctl_limit":""},"categories":[410,606],"tags":[849],"class_list":["post-27968","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-diverso","category-uncategorized-2","tag-affiai-es"],"_links":{"self":[{"href":"https:\/\/themewp.inform.click\/es\/wp-json\/wp\/v2\/posts\/27968","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/themewp.inform.click\/es\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/themewp.inform.click\/es\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/es\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/es\/wp-json\/wp\/v2\/comments?post=27968"}],"version-history":[{"count":0,"href":"https:\/\/themewp.inform.click\/es\/wp-json\/wp\/v2\/posts\/27968\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/themewp.inform.click\/es\/wp-json\/wp\/v2\/media\/21646"}],"wp:attachment":[{"href":"https:\/\/themewp.inform.click\/es\/wp-json\/wp\/v2\/media?parent=27968"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/themewp.inform.click\/es\/wp-json\/wp\/v2\/categories?post=27968"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/themewp.inform.click\/es\/wp-json\/wp\/v2\/tags?post=27968"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}