WordPress no importa las imágenes

16 de enero de 2021

Ya me ha ocurrido varias veces. Al exportar e importar un blog, los textos se copian sin problemas, pero las imágenes no.

El problema se puede deber a diversos motivos. ¿Has marcado el check para importar los medios? Vamos a ver otras causas.

El host es el mismo

Parece que uno de los motivos es que WordPress detecta que el host de origen y destino es el mismo y cancela la descarga.

Se puede forzar, mediante el siguiente filtro, que el CMS trate el host siempre como externo.

add_filter('http_request_host_is_external', '__return_true');
Lenguaje del código: PHP (php)

Existe una protección contra el hotlink en el servidor de origen

¿Qué es el hotlink?
Es cuando la página de otro host usa contenidos de tu web, como imágenes, no copiándolas sino solo usando la url al contenido en tu servidor. Esto implica que tu alojamiento tendrá que trabajar para servir contenidos en la web de otro.

La configuración para evitar el hotlinking puede estar escrita en el fichero .htaccess de tu sitio; gestionado por el panel de administración de turno, como cPanel; o controlado por algún plugin de seguridad; y tiene una pinta semejante a esta:

RewriteCond %{HTTP_REFERER} !^http(s)?://dominio.tld/.*$ [NC] RewriteCond %{HTTP_REFERER} !^http(s)?://dominio.tld$ [NC] RewriteRule .*\.(gif|jpg|jpeg|png|bmp)$ - [F,NC]
Lenguaje del código: Apache (apache)

Que viene diciendo: «Si el dominio de referencia no es dominio.tld, no le mandes nada».

Límite de tiempo de ejecución de PHP

Si el tiempo máximo de ejecución de php es demasiado bajo, la importación también puede fallar. Divide la importación en lotes más pequeños o incrementa el tiempo máximo de ejecución de php.

Si la configuración del servidor lo permite, ya que a veces hay una configuración global más restrictiva, Se puede cambiar el tiempo máximo de ejecución de php de diferentes maneras. En los siguientes ejemplos establecemos el tiempo máximo de ejecución en 120s.

En wp-config.php,

ini_set('max_execution_time', 120);
Lenguaje del código: JavaScript (javascript)

En php.ini

max_execution_time = 120

en .htaccess

php_value max_execution_time 120
Lenguaje del código: Apache (apache)

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.