Documentación · Resolución de problemas

Errores de importación de imágenes

Este documento cubre los fallos que pueden ocurrir cuando el plugin descarga y adjunta imágenes de vehículos desde la API de AutoScout24. Describe las causas probables y los pasos para diagnosticar y resolver los problemas de importación de archivos multimedia.

Cuándo utilizar este documento

Lea este documento cuando:

  • Los posts de vehículos se importan pero no tienen imágenes o solo tienen un conjunto parcial de ellas.
  • El log del plugin contiene líneas que mencionan Image download failed o media_handle_sideload failed.
  • Falta la imagen destacada en los posts de vehículos importados.
  • La conversión a WebP está habilitada pero las imágenes se guardan en su formato original.
  • El worker de la cola de imágenes ha estado ejecutándose pero aún faltan imágenes.

Descripción general

Cuando el plugin importa un vehículo, descarga las imágenes desde las URL proporcionadas por la API de AutoScout24 y las adjunta al post de WordPress. El proceso utiliza las funciones integradas download_url() y media_handle_sideload() de WordPress, que colocan las imágenes en el directorio de subidas estándar de WordPress, generan miniaturas y registran el archivo adjunto en la biblioteca de medios.

Desduplicación

Antes de descargar una imagen, el plugin comprueba si ya ha sido importada buscando un archivo adjunto con un valor de meta de post _as24ci_source_url coincidente. Si se encuentra una coincidencia, se reutiliza el ID del archivo adjunto existente y no se realiza ninguna descarga. Esto evita que la misma imagen se almacene varias veces.

Imagen destacada

La primera imagen del conjunto se establece automáticamente como la imagen destacada (miniatura del post) si no hay ninguna imagen destacada asignada previamente al post. Las imágenes posteriores se registran en el array de meta de post _as24ci_image_ids.

Modo de cola de imágenes

Cuando el modo de cola de imágenes está habilitado (el valor predeterminado para las ejecuciones de importación por cron y REST), solo la primera imagen de cada vehículo se descarga inmediatamente durante la ejecución de la importación. Las URL de las imágenes restantes se colocan en una cola persistente. Un worker de WP-Cron independiente (as24ci_image_queue_process) procesa esta cola de forma asíncrona en lotes de 30 imágenes por ejecución. Esto reduce el tiempo y la memoria requeridos por cada ejecución de importación.

Consulte Errores de Cron para obtener orientación sobre cómo diagnosticar fallos en el worker de la cola de imágenes.

Conversión a WebP

Si la conversión a WebP está habilitada, cada imagen descargada se convierte al formato .webp antes de pasarse a la biblioteca de medios de WordPress. El plugin intenta la conversión utilizando primero PHP GD (imagewebp) y luego recurre a Imagick como alternativa. Si ninguna de las extensiones está disponible, o si la conversión falla, se utiliza el formato de imagen original y se escribe una advertencia en el log.

Requisitos previos

  • La conexión de la API funciona y las imágenes están presentes en el listado de AutoScout24. Verifique esto en la página de Estado del sistema.
  • El proceso del servidor web tiene permisos de escritura en el directorio de subidas de WordPress.
  • La opción Importar imágenes está habilitada en los ajustes del plugin.
  • El límite de memoria de PHP y el tiempo de ejecución son suficientes para descargar y procesar imágenes.

Pasos de diagnóstico

Paso 1: Confirmar que la importación de imágenes está habilitada

  1. Vaya a la pestaña de Ajustes del plugin (o Importación y límites según el diseño).
  2. Confirme que Importar imágenes está habilitado.
  3. Observe el valor de Máx. de imágenes por vehículo. Si está configurado en un número bajo (por ejemplo, 1), solo se descargará esa cantidad de imágenes por vehículo. Establézcalo en 0 para que sea ilimitado.

Paso 2: Leer el archivo de log

Abra el archivo de log del plugin en:

wp-content/uploads/as24ci-logs/adp-car-market-hub.log

Busque los siguientes patrones:

Patrón de logSignificado
Image download failed for listing_id=… url=… error=…download_url() devolvió un error. El mensaje de error incluye la causa (por ejemplo, tiempo de espera de HTTP agotado, conexión rechazada, 404).
media_handle_sideload failed for listing_id=… url=… error=…WordPress no pudo registrar el archivo descargado como un archivo adjunto de medios. A menudo se trata de un problema de permisos del sistema de archivos o de espacio en disco.
WebP conversion skipped: neither GD imagewebp nor Imagick available.La conversión a WebP está habilitada pero la extensión de PHP requerida no está presente.
WebP GD conversion failed for …, trying Imagick.GD falló; se intentará utilizar Imagick como alternativa.
WebP Imagick conversion failed: …Ambos métodos de conversión fallaron. Se guardó el formato de imagen original.
WebP conversion failed for …, using original.Alternativa final: se guardó la imagen original.
Image queue worker: processed=… errors=… remaining=…Resumen de la última ejecución del worker de la cola de imágenes.
Image queue worker error post_id=… url=… error=…Una imagen individual falló dentro del worker de la cola.

Paso 3: Verificar el directorio de subidas

El proceso del servidor web debe tener permisos de escritura en el directorio de subidas de WordPress. Ubicación típica:

wp-content/uploads/

Compruebe a través de FTP, SFTP o el administrador de archivos del hosting que:

  • El directorio existe.
  • El proceso del servidor web tiene permisos de escritura (normalmente 755 para directorios, con el usuario del servidor web como propietario).
  • Hay suficiente espacio en disco disponible.

Si el directorio de subidas no tiene permisos de escritura, media_handle_sideload fallará con un error del sistema de archivos.

Paso 4: Comprobar los límites de memoria y ejecución de PHP

Descargar y procesar múltiples imágenes en una sola solicitud requiere una memoria PHP adecuada. Si el límite de memoria de PHP es demasiado bajo, el procesamiento de imágenes puede fallar silenciosamente o generar un error fatal.

  1. Compruebe en Herramientas → Salud del sitio → Información → Servidor el límite de memoria de PHP actual y el tiempo máximo de ejecución.
  2. Si el límite de memoria está por debajo de 256 MB para sitios con archivos de imagen grandes, considere aumentarlo a través de wp-config.php (define('WP_MEMORY_LIMIT', '256M')) o el panel de control del hosting.
  3. Para las ejecuciones por cron, el plugin intenta establecer un límite de tiempo de ejecución de 300 segundos. Si el entorno de hosting restringe set_time_limit, es posible que esto no surta efecto. Utilice el modo de cola de imágenes (habilitado por defecto) para distribuir las descargas de imágenes en varias ejecuciones más cortas.

Paso 5: Probar la accesibilidad de las URL de las imágenes

Si el log muestra Image download failed con un error de red o HTTP, verifique que las URL de las imágenes devueltas por la API sean accesibles públicamente desde su servidor:

  1. Copie una URL de imagen de la entrada del log.
  2. Intente acceder a ella en un navegador. Si devuelve un error 404 o de autenticación, es posible que la imagen se haya eliminado de la API o que requiera una autenticación que el plugin no proporciona.
  3. Si la URL es accesible en un navegador pero no desde el servidor, puede haber una lista de permitidos de IP, un cortafuegos o una restricción de proxy en las solicitudes HTTP salientes de su servidor.

Paso 6: Verificar el estado de la cola de imágenes

  1. Vaya a la pestaña Sistema y ayuda del plugin.
  2. Busque la sección de la cola de imágenes que muestra: elementos restantes, hora de la última ejecución, recuentos de procesados y fallidos.
  3. Si quedan elementos y el worker de la cola no se ha ejecutado recientemente, verifique que WP-Cron esté activo y que el gancho as24ci_image_queue_process esté programado. Consulte Errores de Cron para obtener más detalles.
  4. Si el bloqueo de la cola de imágenes (as24ci_image_queue_running) está obsoleto, elimínelo a través de WP-CLI o un plugin de gestión de transients: `` wp transient delete as24ci_image_queue_running ``

Paso 7: Comprobar los requisitos previos para la conversión a WebP

Si la conversión a WebP está habilitada pero las imágenes se guardan como JPEG o PNG:

  1. Vaya a Herramientas → Salud del sitio → Información → Servidor y busque la biblioteca GD e Imagick.
  2. GD requiere la función imagewebp, que está disponible en GD compilado con soporte para WebP (PHP 5.5+). Confírmelo con su proveedor de hosting.
  3. Imagick requiere la extensión de PHP imagick compilada con soporte para WebP. Confírmelo con su proveedor de hosting.
  4. Si ninguna de las dos opciones está disponible, deshabilite la conversión a WebP en los ajustes del plugin o póngase en contacto con su proveedor de hosting para habilitar la extensión requerida.

Referencia de configuración

AjusteEfecto
Importar imágenesInterruptor principal. Cuando está deshabilitado, no se descargan imágenes durante la importación. Por defecto: habilitado.
Máx. de imágenes por vehículoNúmero máximo de imágenes descargadas por vehículo. 0 = ilimitado.
Modo de cola de imágenesCuando está habilitado, solo la primera imagen se descarga inmediatamente; las imágenes restantes se ponen en cola. Por defecto: habilitado para ejecuciones por cron/REST.
Convertir a WebPCuando está habilitado, las imágenes descargadas se convierten al formato .webp. Requiere GD con soporte para WebP o Imagick. Por defecto: deshabilitado.
Calidad WebPCalidad de compresión para la conversión a WebP (1–100). Por defecto: 80.

Notas de funcionamiento

  • Las imágenes se descargan con un tiempo de espera de 30 segundos por URL. Los servidores de imágenes externos lentos o poco fiables pueden hacer que fallen imágenes individuales sin afectar al resto de la importación.
  • Cada imagen descargada se registra en la biblioteca de medios de WordPress como un archivo adjunto con post_parent establecido en el ID del post del vehículo.
  • El valor de meta de archivo adjunto _as24ci_source_url se utiliza para la desduplicación. Si este meta se elimina o se corrompe, el plugin puede descargar la misma imagen de nuevo en la siguiente importación.
  • La cola de imágenes puede contener hasta 20.000 elementos. Si se supera este límite, se registra una advertencia y se ejecuta una pasada de desduplicación. Consulte Errores de Cron.
  • Cuando se han procesado todos los elementos de la cola para un vehículo, el meta _as24ci_image_ids se reconstruye a partir de los archivos adjuntos secundarios reales y se finaliza el hash de las imágenes. Hasta entonces, el valor del hash se establece en pending_queue para indicar que el conjunto de imágenes aún no está completo.
  • Eliminar un post de vehículo de forma permanente (a través de la función de eliminación del plugin o desde la lista de CMH Cars de WordPress) también elimina de forma permanente todas las imágenes adjuntas importadas por el plugin.

Resolución de problemas

SíntomaCausa probableComprobación
No hay imágenes en ningún vehículoLa importación de imágenes está deshabilitadaHabilítela en los ajustes del plugin
Solo una imagen por vehículoEl máximo de imágenes está configurado en 1, o la cola de imágenes no se ha ejecutadoCompruebe el ajuste de máximo de imágenes; verifique que el worker de la cola se esté ejecutando
Image download failed … HTTP 404La URL de la imagen ya no es válidaVerifique que el listado aún tenga imágenes en AutoScout24; vuelva a importar
Image download failed … connect timed outEl servidor no puede conectarse con el host de imágenes externoCompruebe el acceso a la red saliente; pruébelo desde el servidor con curl
media_handle_sideload failed … Could not write fileEl directorio de subidas no tiene permisos de escritura o el disco está llenoCompruebe los permisos del directorio y el espacio disponible en disco
La conversión a WebP se omite silenciosamenteGD/Imagick no están disponibles o no están compilados con soporte para WebPCompruebe Salud del sitio → Servidor; deshabilite la conversión a WebP si no es compatible
Imágenes presentes en la biblioteca de medios pero no en la página del vehículoEs posible que falte el meta _as24ci_image_ids o que sea incorrectoVuelva a importar el vehículo; compruebe el meta del post en la base de datos
Falta la imagen destacadaEs posible que la primera imagen de la cola aún no se haya procesadoCompruebe el estado de la cola de imágenes; verifique que el worker de la cola se ejecute
Imágenes duplicadas en la biblioteca de mediosFalta el meta _as24ci_source_url en los archivos adjuntosNo elimine este meta; póngase en contacto con el soporte técnico si se ve afectado

Documentos relacionados