Documentatie · Probleemoplossing
Shortcode-problemen
Dit document behandelt problemen die kunnen optreden bij het gebruik van de shortcodes van de plugin om voertuigoverzichten in te sluiten op WordPress pagina's of berichten.
Wanneer u dit document moet gebruiken
Lees dit document wanneer:
- Een shortcode als platte tekst wordt weergegeven (de shortcode-tag is zichtbaar op de pagina in plaats van de verwachte uitvoer).
- Een shortcode niets of een lege ruimte uitvoert.
- Het voertuigraster wordt weergegeven, maar filteren, sorteren of paginering niet correct werkt.
- De shortcode voor het zoekfilter naar de verkeerde pagina verzendt of niet naar de resultaten navigeert.
- CSS of JavaScript die vereist is voor de shortcode niet op de pagina wordt geladen.
- Een shortcode wel werkt in de ene context (bijv. een standaardpagina) maar niet in een andere (bijv. een widget of een aangepast sjabloon).
Overzicht
De plugin registreert zes shortcodes. De drie hieronder zijn de shortcodes voor weergave/insluiting die in dit document in detail worden behandeld:
| Shortcode | Doel |
|---|---|
[as24ci_archive] | Rendert het volledige voertuigraster met filters, sortering en paginering. |
[as24ci_compare] | Rendert de voertuigvergelijking. |
[as24ci_search_filter] | Rendert alleen het zoekfilterformulier, zonder resultaten. Bedoeld voor gebruik op een homepage of landingspagina om bezoekers naar een resultatenpagina te leiden. |
De plugin registreert ook [as24ci_favorites] (de pagina met opgeslagen voertuigen / verlanglijst), [as24ci_location_box] en [as24ci_hours_box] (locatie- en openingstijdenkaarten). De richtlijnen voor plaatsing en "shortcode wordt als platte tekst weergegeven" in dit document zijn op al deze shortcodes van toepassing.
Shortcodes moeten in het veld voor de berichtinhoud van een WordPress pagina of bericht worden geplaatst. Ze worden verwerkt door de standaard WordPress shortcode-API. Ze worden niet ondersteund in widgets, sjabloonbestanden, PHP-code of contexten waarin do_shortcode() niet wordt aangeroepen.
Beschikbare shortcodes en hun attributen
[as24ci_archive]
Rendert het voertuigarchief met optionele vooraf-filtering.
Ondersteunde attributen (allemaal optioneel):
| Attribuut | Waarden | Beschrijving |
|---|---|---|
make | Slug-string | Vooraf filteren op voertuigmerk. |
model | Slug-string | Vooraf filteren op voertuigmodel. |
price_min | Geheel getal | Minimum prijsfilter. |
price_max | Geheel getal | Maximum prijsfilter. |
fuel | Slug-string | Vooraf filteren op brandstoftype. |
body | Slug-string | Vooraf filteren op carrosserietype. |
order_by | price, mileage, date | Sorteerveld. Standaard: date. |
order | asc, desc | Sorteerrichting. Standaard: asc. |
per_page | 12, 24, 48, 72, all | Resultaten per pagina. Standaard: 24. |
GET-parameters in de URL overschrijven shortcode-attributen. Dit betekent dat interactief filteren (waarbij het filterformulier naar dezelfde pagina verzendt) correct werkt, zelfs wanneer shortcode-attributen standaardwaarden leveren.
Voorbeeld:
[as24ci_archive make="volkswagen" order_by="price" order="asc" per_page="24"]
[as24ci_compare]
Rendert de voertuigvergelijking. Er zijn geen attributen gedefinieerd in de plugin-code. De set met te vergelijken voertuigen wordt beheerd door de browsersessie van de bezoeker (cookies of lokale opslag — controleer dit gedrag in de huidige plugin-versie alvorens te publiceren).
Voorbeeld:
[as24ci_compare]
[as24ci_search_filter]
Rendert een zelfstandig zoekfilterformulier zonder resultatenlijst. Het formulier verwijst bij verzending door naar een resultatenpagina.
Ondersteunde attributen:
| Attribuut | Waarden | Beschrijving |
|---|---|---|
results_url | URL | De pagina waar de resultaten worden weergegeven. Standaard ingesteld op de CPT-archief-URL (/cars/). |
Voorbeeld:
[as24ci_search_filter results_url="/inventory/"]
Als results_url wordt weggelaten, probeert de plugin de CPT-archief-URL automatisch op te lossen. Als de CPT-archief-URL niet kan worden bepaald (bijvoorbeeld bij het gebruik van eenvoudige permalinks), valt deze terug op /cars/.
Vereisten
- De pagina die de shortcode bevat, moet gepubliceerd en toegankelijk zijn.
- Voor
[as24ci_archive]: er moet ten minste één gepubliceerd voertuigbericht bestaan. - Permalinks mogen niet zijn ingesteld op "Eenvoudig" (Plain) om paginering en schone URL-routing correct te laten functioneren.
Diagnostische stappen
Stap 1: Bevestig dat de shortcode in de berichtinhoud staat
Shortcodes worden alleen verwerkt wanneer ze in het standaardgebied voor de berichtinhoud (het veld post_content) zijn geplaatst. Ze worden niet verwerkt in:
- Widgetgebieden (tekstwidgets, aangepaste HTML-widgets)
- Aangepaste velden, tenzij
do_shortcode()expliciet wordt aangeroepen op die velden - PHP-sjabloonbestanden van het thema, tenzij
do_shortcode()wordt aangeroepen - Elementen van paginabouwers die inhoud onafhankelijk van het filter
the_contentverwerken
Als de shortcode als platte tekst verschijnt ([as24ci_archive] is zichtbaar op de pagina), controleer dan of deze in de berichtinhoud staat en niet in een aangepast veld of codeblok dat HTML escaped.
Stap 2: Bevestig dat de shortcode-tag correct is gespeld
Shortcode-namen zijn hoofdlettergevoelig. De juiste namen zijn:
as24ci_archiveas24ci_compareas24ci_search_filter
Een verkeerd gespelde shortcode-naam zal niets uitvoeren. Controleer op typefouten, extra spaties binnen de haken of onjuiste tekens.
Stap 3: Controleer of de plugin actief is
Shortcodes worden geregistreerd wanneer de plugin wordt geladen. Als de plugin is gedeactiveerd of een fatale fout heeft bij het laden, wordt de shortcode niet geregistreerd en wordt de tag als platte tekst of helemaal niets weergegeven.
- Ga naar Plugins → Geïnstalleerde plugins en controleer of ADP Car Market Hub actief is en geen foutmeldingen vertoont.
- Ga naar Gereedschap → Sitetoezicht en controleer op kritieke problemen.
Stap 4: Controleer of CSS en JavaScript worden geladen
De plugin laadt zijn CSS en JavaScript voor pagina's die de shortcodes [as24ci_archive] of [as24ci_compare] bevatten. De plugin detecteert dit door has_shortcode() aan te roepen op de post_content van de huidige pagina.
Als de bestanden niet worden geladen:
- Bevestig dat de shortcode rechtstreeks in
$post->post_contentstaat. Als de inhoud wordt samengesteld door een paginabouwer die inhoud anders opslaat (buitenpost_content), kanhas_shortcode()onwaar retourneren en worden de bestanden niet geladen. - Als u een paginabouwer gebruikt, gebruik dan het shortcode-blok of HTML-blok om de shortcode zo in te sluiten dat deze deel uitmaakt van
post_content. - Controleer de ontwikkelaarstools van de browser op JavaScript-fouten die kunnen voorkomen dat het filterformulier of de galerij wordt geïnitialiseerd.
Stap 5: Controleer het attribuut results_url voor [as24ci_search_filter]
Als het zoekfilterformulier naar de verkeerde pagina verzendt of een 404-fout retourneert:
- Controleer of het attribuut
results_urlnaar de juiste pagina verwijst waar[as24ci_archive]is ingesloten (of naar de CPT-archief-URL). - Als er geen
results_urlis opgegeven, gebruikt de pluginget_post_type_archive_link('as24ci_car'). Als dit niets retourneert (wat kan gebeuren bij eenvoudige permalinks), valt het terug op/cars/. Zorg ervoor dat de doelpagina op die URL bestaat. - Wanneer u een gewone WordPress pagina gebruikt als resultatenpagina (niet het CPT-archief), gebruik dan de permalink van de pagina als
results_url.
Stap 6: Onderzoek paginering bij archieven die met shortcodes zijn ingesloten
Op een pagina die [as24ci_archive] gebruikt, maakt paginering gebruik van de queryparameters ?paged= (of ?page=):
- Klikken op pagina 2 zou
?paged=2aan de pagina-URL moeten toevoegen. - Als de pagina doorverwijst om queryparameters te verwijderen (sommige thema's of caching-plugins doen dit), zal de paginering niet werken.
- Controleer of de permalink-structuur niet is ingesteld op "Eenvoudig" (eenvoudige permalinks verhinderen een correcte routering van de paginering).
- Sluit de shortcode-pagina uit van paginacaching, of configureer de cache zo dat deze varieert op basis van
pageden filter-queryparameters.
Stap 7: Controleer vooraf-filtering met shortcode-attributen
Als de shortcode [as24ci_archive] attributen gebruikt om resultaten vooraf te filteren (bijv. make="bmw") maar het filter wordt niet toegepast:
- Controleer of de attribuutwaarde overeenkomt met de werkelijke slug van een taxonomie-term. Slugs zijn doorgaans in kleine letters met koppeltekens in plaats van spaties (bijv.
mercedes-benzen nietMercedes-Benz). - Houd er rekening mee dat GET-parameters shortcode-attributen overschrijven. Als de bezoeker naar de pagina navigeert zonder URL-parameters, zijn de standaardwaarden van de shortcode van toepassing. Als de URL filterparameters bevat, hebben deze voorrang.
- Controleer of het desbetreffende filter is ingeschakeld in de filterinstellingen van de plugin. Uitgeschakelde filters worden genegeerd bij filteren op basis van GET-parameters, maar overschrijvingen via shortcode-attributen omzeilen de controle op ingeschakelde filters en worden in elk geval toegepast.
Operationele opmerkingen
- De shortcode
[as24ci_archive]maakt zijn eigenWP_Queryaan en vervangt tijdelijk de globale$wp_query. De oorspronkelijke query wordt na het renderen hersteld. Als andere plugins of het thema$wp_querylezen tijdens de render-context van de shortcode, kunnen ze onverwachte waarden tegenkomen. - Meerdere shortcodes op dezelfde pagina worden in principe ondersteund, maar het plaatsen van twee
[as24ci_archive]shortcodes op dezelfde pagina is geen aanbevolen configuratie en kan onverwacht gedrag veroorzaken met de paginering en filterstatus. - Shortcodes mogen niet in elkaar worden genest.
- De shortcode
[as24ci_search_filter]rendert alleen de HTML van het filterformulier. Deze bevat geen resultaten en voert tijdens het renderen geen database-query's uit voor voertuiggegevens. De actie-URL van het formulier en de verborgen routeringsvelden worden tijdens het renderen ingesteld op basis van het attribuutresults_urlof de CPT-archief-URL.
Probleemoplossing
| Symptoom | Waarschijnlijke oorzaak | Controle |
|---|---|---|
| Shortcode zichtbaar als platte tekst | Plugin niet actief, of shortcode in niet-verwerkte context | Bevestig dat de plugin actief is; verplaats de shortcode naar post_content |
| Shortcode voert niets uit | Verkeerd gespelde shortcode-naam; geen gepubliceerde voertuigen | Controleer de spelling; bevestig dat er voertuigen bestaan en zijn gepubliceerd |
| Archiefgrid rendert maar CSS ontbreekt | has_shortcode() mislukt omdat inhoud buiten post_content staat | Plaats de shortcode rechtstreeks in post_content, niet in een veld van de paginabouwer |
| Filters werken niet | Filter uitgeschakeld in instellingen, of JS laadt niet | Schakel filters in via de Layout Manager; controleer de browserconsole op fouten |
| Zoekfilter verwijst naar verkeerde pagina | Attribuut results_url ontbreekt of is onjuist | Stel results_url in op de pagina met [as24ci_archive] |
| Paginering werkt niet | Eenvoudige permalinks, of cache verwijdert queryparameters | Schakel over naar niet-eenvoudige permalinks; configureer cache-uitsluitingen |
| Vooraf filteren op merk werkt niet | Slug komt niet overeen | Gebruik de exacte taxonomie-slug, niet het weergavelabel |