Documentatie · Probleemoplossing
Fouten bij het importeren van afbeeldingen
Dit document behandelt fouten die kunnen optreden wanneer de plugin voertuigafbeeldingen downloadt en koppelt vanuit de AutoScout24 API. Het beschrijft waarschijnlijke oorzaken en de stappen om problemen met het importeren van media te diagnosticeren en op te lossen.
Wanneer u dit document moet gebruiken
Lees dit document wanneer:
- Voertuigberichten worden geïmporteerd maar geen afbeeldingen of slechts een gedeeltelijke set afbeeldingen bevatten.
- Het plugin-logboek regels bevat waarin
Image download failedofmedia_handle_sideload failedwordt genoemd. - De uitgelichte afbeelding ontbreekt bij geïmporteerde voertuigberichten.
- WebP-conversie is ingeschakeld maar afbeeldingen worden opgeslagen in hun originele formaat.
- De image queue worker actief is geweest maar er nog steeds afbeeldingen ontbreken.
Overzicht
Wanneer de plugin een voertuig importeert, downloadt deze afbeeldingen van de URL's die door de AutoScout24 API worden geleverd en koppelt deze aan het WordPress-bericht. Dit proces maakt gebruik van de in WordPress ingebouwde functies download_url() en media_handle_sideload(), die afbeeldingen in de standaard WordPress-uploadmap plaatsen, miniaturen genereren en de bijlage registreren in de mediabibliotheek.
Ontdubbeling
Voordat een afbeelding wordt gedownload, controleert de plugin of deze al is geïmporteerd door te zoeken naar een bijlage met een overeenkomstige _as24ci_source_url post-metawaarde. Als er een overeenkomst wordt gevonden, wordt de bestaande bijlage-ID hergebruikt en vindt er geen download plaats. Dit voorkomt dat dezelfde afbeelding meerdere keren wordt opgeslagen.
Uitgelichte afbeelding
De eerste afbeelding in de set wordt automatisch ingesteld als de uitgelichte afbeelding (post-miniatuur) als er nog geen uitgelichte afbeelding aan het bericht is toegewezen. Volgende afbeeldingen worden vastgelegd in de _as24ci_image_ids post-meta-array.
Afbeeldingenwachtrij-modus
Wanneer de afbeeldingenwachtrij-modus is ingeschakeld (de standaardinstelling voor cron- en REST-importruns), wordt tijdens de importrun alleen de eerste afbeelding per voertuig direct gedownload. De overige afbeeldings-URL's worden in een persistente wachtrij geplaatst. Een afzonderlijke WP-Cron worker (as24ci_image_queue_process) verwerkt deze wachtrij asynchroon in batches van 30 afbeeldingen per run. Dit vermindert de tijd en het geheugen die per importrun nodig zijn.
Zie Cron-fouten voor hulp bij het diagnosticeren van problemen met de image queue worker.
WebP-conversie
Als WebP-conversie is ingeschakeld, wordt elke gedownloade afbeelding geconverteerd naar het .webp-formaat voordat deze wordt doorgegeven aan de WordPress-mediabibliotheek. De plugin probeert eerst conversie met PHP GD (imagewebp) en valt daarna terug op Imagick. Als geen van beide extensies beschikbaar is, of als de conversie mislukt, wordt het originele afbeeldingsformaat gebruikt en wordt er een waarschuwing in het logboek geschreven.
Systeemvereisten
- De API-verbinding werkt en er zijn afbeeldingen aanwezig op de AutoScout24-advertentie. Controleer dit op de Systeemstatus-pagina.
- De WordPress-uploadmap is schrijfbaar door het webserverproces.
- De optie Afbeeldingen importeren is ingeschakeld in de plugin-instellingen.
- De PHP-geheugenlimiet en maximale uitvoeringstijd zijn voldoende voor het downloaden en verwerken van afbeeldingen.
Diagnostische stappen
Stap 1: Controleer of het importeren van afbeeldingen is ingeschakeld
- Ga naar het tabblad Instellingen van de plugin (of Import & Limieten, afhankelijk van de lay-out).
- Controleer of Afbeeldingen importeren is ingeschakeld.
- Let op de waarde Max. afbeeldingen per voertuig. Als deze is ingesteld op een laag getal (bijvoorbeeld
1), worden er slechts zoveel afbeeldingen per voertuig gedownload. Stel deze in op0voor onbeperkt.
Stap 2: Lees het logbestand
Open het logbestand van de plugin op:
wp-content/uploads/as24ci-logs/adp-car-market-hub.log
Zoek naar de volgende patronen:
| Logpatroon | Betekenis |
|---|---|
Image download failed for listing_id=… url=… error=… | download_url() heeft een fout geretourneerd. De foutmelding bevat de oorzaak (bijv. HTTP-timeout, verbinding geweigerd, 404). |
media_handle_sideload failed for listing_id=… url=… error=… | WordPress kon het gedownloade bestand niet registreren als mediabijlage. Vaak een probleem met bestandssysteemberechtigingen of schijfruimte. |
WebP conversion skipped: neither GD imagewebp nor Imagick available. | WebP-conversie is ingeschakeld, maar de vereiste PHP-extensie is niet aanwezig. |
WebP GD conversion failed for …, trying Imagick. | GD is mislukt; Imagick wordt geprobeerd als fallback. |
WebP Imagick conversion failed: … | Beide conversiemethoden zijn mislukt. Het originele afbeeldingsformaat is opgeslagen. |
WebP conversion failed for …, using original. | Uiterste fallback: originele afbeelding opgeslagen. |
Image queue worker: processed=… errors=… remaining=… | Samenvatting van de laatste run van de image queue worker. |
Image queue worker error post_id=… url=… error=… | Een individuele afbeelding is mislukt binnen de queue worker. |
Stap 3: Controleer de uploadmap
De WordPress-uploadmap moet schrijfbaar zijn door de webserver. Typische locatie:
wp-content/uploads/
Controleer via FTP, SFTP of de bestandsbeheerder van uw hosting dat:
- De map bestaat.
- Het webserverproces schrijfrechten heeft (meestal
755voor mappen, met de webservergebruiker als eigenaar). - Er voldoende schijfruimte beschikbaar is.
Als de uploadmap niet schrijfbaar is, zal media_handle_sideload mislukken met een bestandssysteemfout.
Stap 4: Controleer PHP-geheugen en uitvoeringstijdlimieten
Het downloaden en verwerken van meerdere afbeeldingen in een enkel verzoek vereist voldoende PHP-geheugen. Als de PHP-geheugenlimiet te laag is, kan de afbeeldingsverwerking geruisloos mislukken of een fatale fout genereren.
- Controleer Gereedschap → Systeemsituatie → Info → Server voor de huidige PHP-geheugenlimiet en maximale uitvoeringstijd.
- Als de geheugenlimiet lager is dan 256 MB voor sites met grote afbeeldingsbestanden, overweeg dan om deze te verhogen via
wp-config.php(define('WP_MEMORY_LIMIT', '256M')) of het controlepaneel van uw hosting. - Voor cron-runs probeert de plugin een uitvoeringstijdlimiet van 300 seconden in te stellen. Als de hostingomgeving
set_time_limitbeperkt, heeft dit mogelijk geen effect. Gebruik de afbeeldingenwachtrij-modus (standaard ingeschakeld) om het downloaden van afbeeldingen te spreiden over meerdere kortere runs.
Stap 5: Test de bereikbaarheid van de afbeeldings-URL
Als het logboek Image download failed toont met een netwerk- of HTTP-fout, controleer dan of de afbeeldings-URL's die door de API worden geretourneerd openbaar toegankelijk zijn vanaf uw server:
- Kopieer een afbeeldings-URL uit de logregel.
- Probeer deze te openen in een browser. Als deze een 404- of authenticatiefout retourneert, is de afbeelding mogelijk verwijderd uit de API of is er authenticatie vereist die de plugin niet biedt.
- Als de URL wel toegankelijk is in een browser maar niet vanaf de server, is er mogelijk een IP-whitelist, firewall of proxy-beperking actief op de uitgaande HTTP-verzoeken van uw server.
Stap 6: Controleer de status van de afbeeldingenwachtrij
- Ga naar het tabblad Systeem & Hulp van de plugin.
- Zoek naar het gedeelte over de afbeeldingenwachtrij dat het volgende toont: resterende items, tijdstip van de laatste run, aantal verwerkte en mislukte items.
- Als er items overblijven en de queue worker recentelijk niet heeft gedraaid, controleer dan of WP-Cron actief is en de hook
as24ci_image_queue_processis ingepland. Zie Cron-fouten voor details. - Als de vergrendeling van de afbeeldingenwachtrij (
as24ci_image_queue_running) verouderd is, verwijder deze dan via WP-CLI of een plugin voor transient-beheer: ``wp transient delete as24ci_image_queue_running``
Stap 7: Controleer de vereisten voor WebP-conversie
Als WebP-conversie is ingeschakeld maar afbeeldingen worden opgeslagen als JPEG of PNG:
- Ga naar Gereedschap → Systeemsituatie → Info → Server en zoek naar de GD-bibliotheek en Imagick.
- GD vereist de functie
imagewebp, die beschikbaar is in GD gecompileerd met WebP-ondersteuning (PHP 5.5+). Neem contact op met uw hostingprovider om dit te bevestigen. - Imagick vereist de PHP-extensie
imagickmet ingebouwde WebP-ondersteuning. Neem contact op met uw hostingprovider om dit te bevestigen. - Als geen van beide beschikbaar is, schakel dan WebP-conversie uit in de plugin-instellingen of neem contact op met uw hostingprovider om de vereiste extensie in te schakelen.
Beheerdersreferentie voor configuratie
| Instelling | Effect |
|---|---|
| Afbeeldingen importeren | Hoofdschakelaar. Indien uitgeschakeld, worden er tijdens de import geen afbeeldingen gedownload. Standaard: ingeschakeld. |
| Max. afbeeldingen per voertuig | Maximaal aantal gedownloade afbeeldingen per voertuig. 0 = onbeperkt. |
| Afbeeldingenwachtrij-modus | Indien ingeschakeld, wordt alleen de eerste afbeelding direct gedownload; de overige afbeeldingen worden in de wachtrij geplaatst. Standaard: ingeschakeld voor cron/REST-runs. |
| Converteren naar WebP | Indien ingeschakeld, worden gedownloade afbeeldingen geconverteerd naar het .webp-formaat. Vereist GD met WebP-ondersteuning of Imagick. Standaard: uitgeschakeld. |
| WebP-kwaliteit | Compressiekwaliteit voor WebP-conversie (1–100). Standaard: 80. |
Operationele opmerkingen
- Afbeeldingen worden gedownload met een timeout van 30 seconden per URL. Trage of onbetrouwbare externe afbeeldingsservers kunnen ervoor zorgen dat individuele afbeeldingen mislukken zonder de rest van de import te beïnvloeden.
- Elke gedownloade afbeelding wordt in de WordPress-mediabibliotheek geregistreerd als een bijlage met
post_parentingesteld op de post-ID van het voertuig. - De metawaarde van de bijlage
_as24ci_source_urlwordt gebruikt voor ontdubbeling. Als deze meta wordt verwijderd of beschadigd raakt, kan de plugin dezelfde afbeelding bij de volgende import opnieuw downloaden. - De afbeeldingenwachtrij kan maximaal 20.000 items bevatten. Als deze limiet wordt overschreden, wordt er een waarschuwing gelogd en wordt er een ontdubbelingsronde uitgevoerd. Zie Cron-fouten.
- Wanneer alle wachtrij-items voor een voertuig zijn verwerkt, wordt de meta
_as24ci_image_idsopnieuw opgebouwd op basis van de daadwerkelijke onderliggende bijlagen en wordt de hash van de afbeeldingen definitief gemaakt. Tot die tijd is de hash-waarde ingesteld oppending_queueom aan te geven dat de afbeeldingsset nog niet compleet is. - Het permanent verwijderen van een voertuigbericht (via de verwijderfunctie van de plugin of uit de WordPress Cars-lijst) verwijdert ook permanent alle gekoppelde afbeeldingen die door de plugin zijn geïmporteerd.
Probleemoplossing
| Symptoom | Waarschijnlijke oorzaak | Controleer |
|---|---|---|
| Geen afbeeldingen bij elk voertuig | Afbeeldingen importeren is uitgeschakeld | Schakel in via de plugin-instellingen |
| Slechts één afbeelding per voertuig | Max. afbeeldingen is ingesteld op 1, of de afbeeldingenwachtrij is niet uitgevoerd | Controleer de instelling voor max. afbeeldingen; controleer of de queue worker actief is |
Image download failed … HTTP 404 | Afbeeldings-URL is niet meer geldig | Controleer of de advertentie nog afbeeldingen heeft in AutoScout24; importeer opnieuw |
Image download failed … connect timed out | Server kan de externe afbeeldingshost niet bereiken | Controleer uitgaande netwerktoegang; probeer vanaf de server met curl |
media_handle_sideload failed … Could not write file | Uploadmap is niet schrijfbaar of schijf is vol | Controleer de maprechten en beschikbare schijfruimte |
| WebP-conversie geruisloos overgeslagen | GD/Imagick niet beschikbaar of niet gecompileerd met WebP-ondersteuning | Controleer Systeemsituatie → Server; schakel WebP-conversie uit indien niet ondersteund |
| Afbeeldingen aanwezig in mediabibliotheek maar niet op voertuigpagina | De meta _as24ci_image_ids ontbreekt of is onjuist | Importeer het voertuig opnieuw; controleer de post-meta in de database |
| Uitgelichte afbeelding ontbreekt | Eerste afbeelding in de wachtrij is mogelijk nog niet verwerkt | Controleer de status van de afbeeldingenwachtrij; controleer of de queue worker draait |
| Dubbele afbeeldingen in mediabibliotheek | De meta _as24ci_source_url ontbreekt bij bijlagen | Verwijder deze meta niet; neem contact op met de support als u hierdoor bent getroffen |