Releases: asperagrafica/aspera-analysis-api
Release list
v3.22.0
Nieuwe regel hardcoded_text_no_dynamic_support (observation). hardcoded_text gaat ervan uit dat een vaste tekst door een ACF-koppeling vervangen kan worden, maar us_list_search en us_list_result_counter bieden hun text-parameter niet als dynamic value aan: us-core zet er geen dynamic_values op, dus de editor toont geen veldkiezer en hardcoderen is de enige mogelijkheid. Die gevallen worden nu als observation vastgelegd in plaats van als warning, zodat de plek zichtbaar blijft en alsnog omgezet kan worden zodra het framework de koppeling toestaat. De lijst en het criterium staan in ASPERA_NO_DYNAMIC_TEXT_PARAMS, met verified_against op us-core 9.2.2.
/css/unused: twee prefixen toegevoegd aan de framework-lijst. single- is de WordPress body class per post type (single, single-post, single-project_cpt): Impreza zet die op de body van elk item, dus CSS die eraan hangt geldt post-type-breed en komt per definitie niet in een el_class voor. mod_ dekt de filter-modifiers mod_dropdown, mod_side, mod_toggle en mod_default, die us-core zelf op het element zet in templates/elements/grid_filter.php en templates/elements/list_filter.php.
Daarnaast ontbrak hardcoded_text in de categorie-registry, waardoor de recheck-knop bij die melding geen endpoint kon vinden.
v3.21.0
Licentiecheck teruggebracht tot de lokale activatiestatus. De remote verificatie bij /envato_auth, de domein-baseline en de transient-cache zijn verwijderd; aspera_impreza_license_state() leest nog uitsluitend us_license_activated en us_license_dev_activated. De regels impreza_license_domain_mismatch en impreza_license_check_unavailable vervallen. Reden: elk antwoord dat niet exact status 1 was gold als domein-mismatch, ook bij rate limiting of een storing, en het oordeel werd twaalf uur gecachet, waardoor een geslaagde heractivatie pas de volgende dag zichtbaar werd.
Breakpoint-regel toetst alleen nog de breedtes. responsive_breakpoint_cols_mismatch vervalt: het verwachte kolomaantal per breakpoint werd afgeleid uit columns, maar die desktopwaarde is een ontwerpkeuze en geen norm — een lijst die op desktop bewust één kolom breed is, mag op laptops drie kolommen tonen. De fix-knop set_responsive_breakpoints herschrijft nu alleen breakpoint_1..3_width en laat de kolom-attributen ongemoeid.
Daarnaast een plakfout uit v3.20.0 opgeruimd: de width-violation droeg een losse waarde op numerieke index 0.
v3.20.1
ACF slug-context: alle OR-groepen van een field group wegen mee en page is leidend.
/acf/validate/slugsbepaalde de context uit de eerste matchende locatieregel. Een field group die zowel aan een page-taxonomie als aan een CPT hing, viel daardoor volledig in cpt-context en meldde correcte_p_-velden alswrong_cpt_format.post_taxonomytelt nu mee: het post type wordt afgeleid viaget_taxonomy()->object_type, gelijk aan de afleiding inwrong_group_name_prefix.- Alleen locatieregels met operator
==bepalen de context.
v3.20.0
Nieuwe regel responsive_breakpoint_cols_mismatch: het kolomaantal per breakpoint loopt af vanaf de desktopwaarde in columns — laptops min(3, columns), tablets min(2, columns), mobiles 1. De afkapping voorkomt dat een breakpoint het element breder maakt dan het op desktop is.
Nieuwe fix-button set_responsive_breakpoints: zet met één klik alle zes de breakpoint-attributen van een lijst-element goed. De waarden worden server-side herberekend uit de theme options; de browser levert alleen de post en de shortcode.
Beide breakpoint-regels melden nu één violation per element in plaats van één per slot.
v3.19.0
Responsive breakpoints van lijst-elementen volgen nu alle drie de theme-opties: slot 1 = laptops screen width, slot 2 = tablets screen width, slot 3 = mobiles screen width. Het kolomaantal speelt geen rol meer.
De regel responsive_breakpoint_unexpected is geschrapt: met drie verwachte slots bestaat er geen ongebruikt slot meer.
v3.18.3
Bugfix: responsive_breakpoint_unexpected keek ook naar het kolomaantal.
Een breakpoint-slot gold als "in gebruik" zodra breakpoint_N_cols gevuld was, ook wanneer er geen bruikbare breedte bij stond. Daardoor werd een post list met columns="1" en alle breedtes uit toch twee keer gemeld, omdat er nog kolomaantallen van een eerdere instelling in de shortcode stonden.
Een slot telt nu pas als in gebruik wanneer de breedte een bruikbare px-waarde heeft. Een achtergebleven kolomaantal zonder breedte doet niets en is geen fout: de slider kan niet leeggemaakt worden, dus zulke resten blijven onvermijdelijk staan.
Ongewijzigd: een slot met een echte breedte op een plek waar het niet hoort, wordt nog steeds gemeld.
v3.18.2
Bugfix: 0px telt nu als uit-stand van een breakpoint.
De breakpoint-width control in de builder is een slider met een minimum, dus het veld kan niet leeggemaakt worden. Een breakpoint uitzetten doe je door hem op 0 te zetten. v3.18.1 las 0px als een ingevulde waarde en meldde daardoor responsive_breakpoint_unexpected op een slot dat juist correct uit stond.
Een breakpoint geldt nu als uit bij:
- een afwezig attribuut
- een lege waarde
0px
Staat een vereist slot op 0px, dan blijft dat terecht een mismatch. De detail-tekst zegt dan "uitgeschakeld (0px)" in plaats van de kale waarde, zodat duidelijk is dat het breakpoint bewust uit staat en niet per ongeluk verkeerd is ingevuld.
v3.18.1
Bugfix op de responsive breakpoint-regels uit v3.18.0. Die versie kwam op de verkeerde verwachting uit door twee fouten.
1. De columns-fallback stond vast op 2
De us-core default voor columns verschilt per element:
| Element | us-core std |
|---|---|
us_post_list |
4 |
us_product_list |
4 |
us_user_list |
3 |
us_term_list |
3 |
us_grid |
2 |
Een us_post_list zonder columns-attribuut werd daardoor als 2-koloms behandeld en kreeg de verkeerde breakpoints voorgeschoteld. De constante houdt nu per element de juiste default bij.
2. Slot 1 werd bij 2 kolommen op mobiles verwacht
Slot 1 is altijd de tablets-breakpoint, slot 2 altijd de mobiles-breakpoint. Het kolomaantal bepaalt alleen hoe vaak er gebroken wordt:
| Kolommen | Slot 1 | Slot 2 | Slot 3 |
|---|---|---|---|
| 3 of meer | tablets_breakpoint | mobiles_breakpoint | leeg |
| 2 | tablets_breakpoint | leeg | leeg |
| 1 | leeg | leeg | leeg |
Vuistregel: twee kolommen breken één keer, drie of vier kolommen breken twee keer.
v3.18.0
Twee regels die de responsive breakpoints van lijst-elementen toetsen aan de Impreza theme options.
responsive_breakpoint_width_mismatch (categorie wpb, warning)
De breakpoint-widths van us_post_list, us_product_list, us_user_list, us_term_list en us_grid moeten exact de theme options volgen:
| Kolommen | Slot 1 | Slot 2 | Slot 3 |
|---|---|---|---|
| 3 of meer | tablets_breakpoint | mobiles_breakpoint | leeg |
| 2 | mobiles_breakpoint | leeg | leeg |
| 1 | leeg | leeg | leeg |
responsive_breakpoint_unexpected (categorie wpb, warning)
Een breakpoint-slot is gevuld dat bij dit kolomaantal ongebruikt hoort te blijven: slot 2 bij 2 kolommen, of slot 3 altijd. Dat levert een extra kolomstap op die de responsive volgorde kan omkeren.
Belangrijk om te weten
us-core hanteert eigen defaults voor deze attributen, afgeleid uit de theme options plus één: laptops_breakpoint + 1 voor slot 1, tablets_breakpoint + 1 voor slot 2 en mobiles_breakpoint + 1 voor slot 3. Die wijken af van deze standaard, dus een niet-gezet attribuut is hier een violation en geen vrijstelling. Elk lijst-element moet zijn breakpoint-widths expliciet zetten. Een ontbrekend columns telt als 2, conform de us-core default.
De referentiewaarden komen uit usof_options_Impreza, niet hardcoded. Nieuwe helper aspera_theme_breakpoints() geeft null terug wanneer die opties ontbreken of onbruikbaar zijn; de regel slaat dan over in plaats van een onjuiste verwachting te stellen.
Geen fix-buttons. Onzinwaarden als width="px" of "pxpx" tellen niet als gevuld slot en worden niet apart gemeld.
v3.17.0
Drie nieuwe regelgroepen en één opruiming.
hardcoded_element_text (categorie grid, warning)
Vlagt text:* elementen in us_header en us_grid_layout met vaste inhoud in plaats van een {{veld}}-verwijzing. Denk aan een telefoonnummer of emailadres in de header: die zijn dan alleen via de header builder aanpasbaar in plaats van via een option page-veld. Geen fix-button.
hardcoded_text geschrapt
Stond geregistreerd in de categorielijst, de regelcatalogus en de severity_map, maar had nergens detectie en vuurde dus nooit. us-core kent geen enkele shortcode met een text-parameter; vaste tekst staat daar tussen de tags. De regel had nooit een grondslag. hardcoded_element_text dekt de enige plek waar een text-property echt voorkomt.
wrong_group_name_prefix uitgebreid
De locatie-param post_taxonomy viel buiten de prefix-mapping, waardoor elke ACF field group met die locatievorm stilzwijgend werd overgeslagen. De prefix wordt nu afgeleid uit get_taxonomy()->object_type: één post type page geeft Page - , één ander CPT geeft CPT - , staat de taxonomie op meerdere post types dan wordt geen verwachting gesteld.
WP-Optimize schedule-validatie (categorie db_tables, warning)
Drie regels die de Aspera-standaard voor geplande database-opschoning controleren:
wpo_schedule_disabled— geplande opschoning staat uitwpo_schedule_wrong_interval— interval is niet dailywpo_cleanup_task_missing— een of meer van de taken Database optimize, Clean post revisions, Remove auto draft posts en Remove expired transient options staan uit
Nul violations als WP-Optimize niet actief is. De vier taken die content verwijderen (usermeta, trash, spams, unapproved) vallen bewust buiten de standaard. Automatiseert wat tot nu toe alleen een handmatig vinkje was in de lanceer-checklist.