{"id":5024,"date":"2025-09-18T16:45:03","date_gmt":"2025-09-18T14:45:03","guid":{"rendered":"https:\/\/wpmastertoolkit.com\/?p=5024"},"modified":"2025-09-18T16:46:49","modified_gmt":"2025-09-18T14:46:49","slug":"wpmastertoolkit-2-11-0-nouveau-module-media-replacement-remplacer-un-media-sans-casser-les-liens","status":"publish","type":"post","link":"https:\/\/wpmastertoolkit.com\/es\/wpmastertoolkit-2-11-0-nuevo-modulo-de-sustitucion-de-medios-sustituye-los-medios-sin-romper-los-enlaces\/","title":{"rendered":"WPMasterToolKit 2.11.0 - Nuevo m\u00f3dulo de reemplazo de medios (reemplaza medios sin romper enlaces)"},"content":{"rendered":"<h2 class=\"wp-block-heading\">Resumen de la versi\u00f3n<\/h2>\n\n\n\n<p><strong>Versi\u00f3n :<\/strong> 2.11.0<br><strong>M\u00f3dulo a\u00f1adido :<\/strong> Sustituci\u00f3n de soportes<br><strong>Objetivo:<\/strong> sustituir cualquier archivo multimedia por una nueva versi\u00f3n conservando <strong>el ID del medio, el nombre del archivo y la fecha de publicaci\u00f3n<\/strong> - sus URL, integraciones y enlaces existentes seguir\u00e1n funcionando.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Por qu\u00e9 es importante este m\u00f3dulo<\/h2>\n\n\n\n<p>Actualizar un PDF, un logotipo, una imagen de producto o una fuente sin romper las p\u00e1ginas que hacen referencia a ellos es un verdadero quebradero de cabeza en WordPress. El sitio <strong>Sustituci\u00f3n de soportes<\/strong> resuelve este problema: usted sube la nueva versi\u00f3n, nosotros sustituimos el <strong>en el mismo lugar<\/strong>entonces <strong>regeneremos la poda<\/strong> y <strong>actualizar los metadatos<\/strong>. Resultado: ning\u00fan 404, ning\u00fan enlace que corregir, ning\u00fan contenido que volver a publicar.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Cambios pr\u00e1cticos<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Sustituci\u00f3n in situ<\/strong> copiar el nuevo archivo sobre la ruta antigua (<code data-no-auto-translation=\"\">get_attached_file()<\/code>).<\/li>\n\n\n\n<li><strong>Conservar las referencias<\/strong> : even <strong>ID<\/strong>, <strong>slug\/nombre nuevo id\u00e9ntico<\/strong>, <strong>fecha<\/strong> y <strong>enlaces permanentes<\/strong>.<\/li>\n\n\n\n<li><strong>Control estricto del tipo de archivo<\/strong> el mimetype debe <strong>corresponden<\/strong> (imagen \u2194 imagen, PDF \u2194 PDF, etc.) para evitar incoherencias.<\/li>\n\n\n\n<li><strong>Regeneraci\u00f3n autom\u00e1tica<\/strong> : <code data-no-auto-translation=\"\">wp_generate_attachment_metadata()<\/code> + <code data-no-auto-translation=\"\">wp_update_attachment_metadata()<\/code> para reconstruir todo el <strong>subtama\u00f1os<\/strong> (miniaturas, mediano, grande, etc.).<\/li>\n\n\n\n<li><strong>Limpieza fiable<\/strong> eliminaci\u00f3n de variantes antiguas mediante <code data-no-auto-translation=\"\">wp_delete_attachment_files()<\/code> y forzar la eliminaci\u00f3n del archivo si es necesario (incluidas las im\u00e1genes <strong>-escala<\/strong>).<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Recorrido del usuario (en 3 clics)<\/h2>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>Mediateca<\/strong> \u2192 Pasa el rat\u00f3n por encima de un elemento y haz clic <strong>Sustituir medios<\/strong> (acci\u00f3n en l\u00ednea)<br><em>(tambi\u00e9n presente en la barra lateral de la p\u00e1gina de adjuntos y en el modal multimedia)<\/em><\/li>\n\n\n\n<li><strong>Arrastrar y soltar<\/strong> o <strong>seleccione<\/strong> el archivo de sustituci\u00f3n.\n<ul class=\"wp-block-list\">\n<li>El m\u00f3dulo muestra <strong>Tipo<\/strong>, <strong>Talla<\/strong> y - para las im\u00e1genes - <strong>Dimensiones<\/strong> de los archivos antiguos y nuevos.<\/li>\n\n\n\n<li>Comprobaci\u00f3n de las salvaguardias de la IU <strong>tama\u00f1o m\u00e1ximo<\/strong> el sitio y <strong>mimetype id\u00e9ntico<\/strong>.<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li>Haga clic en <strong>Sustituir<\/strong>. La sustituci\u00f3n es instant\u00e1nea y sus p\u00e1ginas permanecen intactas.<\/li>\n<\/ol>\n\n\n\n<h2 class=\"wp-block-heading\">Detalles t\u00e9cnicos (para los curiosos)<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Ganchos e interfaz de usuario<\/strong>\n<ul class=\"wp-block-list\">\n<li><code data-no-auto-translation=\"\">media_row_actions<\/code> a\u00f1ade acci\u00f3n <strong>Sustituir medios<\/strong> en la lista.<\/li>\n\n\n\n<li><code data-no-auto-translation=\"\">attachment_fields_to_edit<\/code> &amp; <code data-no-auto-translation=\"\">attachment_submitbox_misc_actions<\/code> en el archivo media + modal.<\/li>\n\n\n\n<li>A <strong>submen\u00fa<\/strong> oculto bajo <code data-no-auto-translation=\"\">upload.php<\/code> gestiona la interfaz de usuario dedicada (vista previa antes\/despu\u00e9s).<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>Seguridad<\/strong>\n<ul class=\"wp-block-list\">\n<li><strong>Nonce<\/strong> espec\u00edficas del m\u00f3dulo para cada acci\u00f3n.<\/li>\n\n\n\n<li><code data-no-auto-translation=\"\">wp_check_filetype_and_ext()<\/code> + bloqueo si el tipo difiere (excepto rol con <code data-no-auto-translation=\"\">unfiltered_upload<\/code>).<\/li>\n\n\n\n<li>Validaci\u00f3n de entradas (<code data-no-auto-translation=\"\">sanitize_text_field<\/code>, <code data-no-auto-translation=\"\">is_uploaded_file<\/code>gesti\u00f3n de errores de carga).<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>Sustituci\u00f3n y limpieza<\/strong>\n<ul class=\"wp-block-list\">\n<li>Elimine los archivos existentes (incluidos los tama\u00f1os y las copias de seguridad) y, a continuaci\u00f3n <strong>copia<\/strong> del nuevo archivo al <strong>de la misma manera<\/strong>.<\/li>\n\n\n\n<li>Gesti\u00f3n de casos<strong>-escala<\/strong>\" tambi\u00e9n ofrece protecci\u00f3n para los plugins multiling\u00fces (por ejemplo, archivos bloqueados) con un <strong>supresi\u00f3n dura<\/strong> en fallback.<\/li>\n<\/ul>\n<\/li>\n\n\n\n<li><strong>Rendimiento y filosof\u00eda WPMTK<\/strong>\n<ul class=\"wp-block-list\">\n<li>Como todos los WPMTK : <strong>cargado s\u00f3lo si est\u00e1 activado<\/strong>.<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Casos de uso t\u00edpicos<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>PDF<\/strong> actualizar un folleto sin cambiar la URL compartida con los clientes.<\/li>\n\n\n\n<li><strong>Logo\/Cartel<\/strong> Actualizar un logotipo utilizado globalmente (cabecera, pies de p\u00e1gina, constructores) sin editar las p\u00e1ginas.<\/li>\n\n\n\n<li><strong>Im\u00e1genes de comercio electr\u00f3nico<\/strong> Ajustar una foto de producto a la que se hace referencia en cientos de archivos.<\/li>\n\n\n\n<li><strong>Fuentes\/ICONOS<\/strong> reemplazar un archivo est\u00e1tico referenciado por tema o constructor.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">L\u00edmites y buenas pr\u00e1cticas<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Mimetype estricto<\/strong> No se puede sustituir un <strong>JPEG<\/strong> por un <strong>PNG<\/strong> (o un <strong>PDF<\/strong> por un <strong>DOCX<\/strong>). Mantenga el <strong>mismo tipo<\/strong>.<\/li>\n\n\n\n<li><strong>Tama\u00f1o m\u00e1ximo<\/strong> respeto por <strong>l\u00edmite de carga<\/strong> del lugar (verificado en IU).<\/li>\n\n\n\n<li><strong>Cach\u00e9<\/strong> si existe una CDN, purgar\/esperar a la propagaci\u00f3n para ver la nueva versi\u00f3n en todas partes.<\/li>\n\n\n\n<li><strong>Dimensiones de la imagen<\/strong> Si cambia radicalmente las dimensiones, el aspecto puede variar en el lugar donde se integra la imagen. Comprueba tus modelos.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Gu\u00eda r\u00e1pida (paso a paso)<\/h2>\n\n\n\n<ol class=\"wp-block-list\">\n<li>Medios \u2192 elegir medios \u2192 <strong>Sustituir medios<\/strong>.<\/li>\n\n\n\n<li>Cargar un archivo <strong>del mismo tipo<\/strong>.<\/li>\n\n\n\n<li>Comprueba la vista previa, el tama\u00f1o y (si es imagen) las dimensiones.<\/li>\n\n\n\n<li>Confirmar: <strong>Sustituir<\/strong>. En <strong>miniaturas<\/strong> se regeneran autom\u00e1ticamente.<\/li>\n<\/ol>\n\n\n\n<h2 class=\"wp-block-heading\">Notas sobre seguridad y compatibilidad<\/h2>\n\n\n\n<ul class=\"wp-block-list\">\n<li>Validaci\u00f3n sistem\u00e1tica de nonces y servidores en todas las acciones.<\/li>\n\n\n\n<li>Compatible con Media Library (lista, modal, formulario) y admin nativo.<\/li>\n\n\n\n<li>Dise\u00f1ado para funcionar con plugins multiling\u00fces y tama\u00f1os personalizados.<\/li>\n<\/ul>\n\n\n\n<h2 class=\"wp-block-heading\">Conclusi\u00f3n<\/h2>\n\n\n\n<p>Esta versi\u00f3n 2.11.0 aporta <strong>importante actualizaci\u00f3n y mantenimiento de UX<\/strong> fin de las URL rotas al sustituir archivos. Active la funci\u00f3n <strong>Sustituci\u00f3n de soportes<\/strong> y actualice sus soportes de forma segura, sin fricciones ni deudas t\u00e9cnicas.<\/p>","protected":false},"excerpt":{"rendered":"<p>R\u00e9sum\u00e9 de la version Version : 2.11.0Module ajout\u00e9 : Media ReplacementObjectif : remplacer n\u2019importe quel fichier m\u00e9dia par une nouvelle version tout en conservant l\u2019ID du m\u00e9dia, le nom de fichier et la date de publication \u2014 vos URLs, int\u00e9grations et liens existants continuent de fonctionner. Pourquoi ce module est important Mettre \u00e0 jour un [&hellip;]<\/p>","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"_seopress_robots_primary_cat":"","_seopress_titles_title":"","_seopress_titles_desc":"","_seopress_robots_index":"","_surecart_dashboard_logo_width":"180px","_surecart_dashboard_show_logo":true,"_surecart_dashboard_navigation_orders":true,"_surecart_dashboard_navigation_invoices":true,"_surecart_dashboard_navigation_subscriptions":true,"_surecart_dashboard_navigation_downloads":true,"_surecart_dashboard_navigation_billing":true,"_surecart_dashboard_navigation_account":true,"footnotes":""},"categories":[1],"tags":[],"class_list":["post-5024","post","type-post","status-publish","format-standard","hentry","category-non-classe"],"acf":[],"_links":{"self":[{"href":"https:\/\/wpmastertoolkit.com\/es\/wp-json\/wp\/v2\/posts\/5024","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wpmastertoolkit.com\/es\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/wpmastertoolkit.com\/es\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/wpmastertoolkit.com\/es\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/wpmastertoolkit.com\/es\/wp-json\/wp\/v2\/comments?post=5024"}],"version-history":[{"count":2,"href":"https:\/\/wpmastertoolkit.com\/es\/wp-json\/wp\/v2\/posts\/5024\/revisions"}],"predecessor-version":[{"id":5026,"href":"https:\/\/wpmastertoolkit.com\/es\/wp-json\/wp\/v2\/posts\/5024\/revisions\/5026"}],"wp:attachment":[{"href":"https:\/\/wpmastertoolkit.com\/es\/wp-json\/wp\/v2\/media?parent=5024"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wpmastertoolkit.com\/es\/wp-json\/wp\/v2\/categories?post=5024"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wpmastertoolkit.com\/es\/wp-json\/wp\/v2\/tags?post=5024"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}