[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"$fDK0HHhbGUoyUJsBFCBBJm3gkHxWqoW2wfeGIdGsEaTM":3},{"slug":4,"display_name":5,"profile_url":6,"plugin_count":7,"total_installs":8,"avg_security_score":9,"avg_patch_time_days":10,"trust_score":11,"computed_at":12,"plugins":13},"designed2use","Designed 2 Use","https:\u002F\u002Fprofiles.wordpress.org\u002Fdesigned2use\u002F",3,0,100,30,94,"2026-08-29T13:42:06.634Z",[14,35,53],{"slug":15,"name":16,"version":17,"author":5,"author_profile":6,"description":18,"short_description":19,"active_installs":8,"downloaded":20,"rating":8,"num_ratings":8,"last_updated":21,"tested_up_to":22,"requires_at_least":23,"requires_php":24,"tags":25,"homepage":31,"download_link":32,"security_score":9,"vuln_count":8,"unpatched_count":8,"last_vuln_date":33,"fetched_at":34},"designed2use-convert-to-webp","Designed2Use Convert to WebP\u002FAVIF","1.0.0","\u003Cp>\u003Cstrong>Designed2Use Convert to WebP\u002FAVIF\u003C\u002Fstrong> is a privacy-first image optimizer with one promise the\u003Cbr \u002F>\nbig-name plugins can’t make: \u003Cstrong>your images never leave your server, and every conversion\u003Cbr \u002F>\ncan be undone.\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cp>Most popular optimizers upload your images to a third-party cloud service to do the work —\u003Cbr \u002F>\ncounting against monthly quotas and handing your media to someone else’s servers. This\u003Cbr \u002F>\nplugin does everything \u003Cstrong>locally\u003C\u002Fstrong>, using WordPress’s own image editor (Imagick, falling\u003Cbr \u002F>\nback to GD). No accounts, no API keys, no external requests.\u003C\u002Fp>\n\u003Ch4>Why it’s different\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>\u003Cstrong>100% local & private\u003C\u002Fstrong> — no cloud service, no telemetry, no phone-home. Every image is\u003Cbr \u002F>\nprocessed on your own site.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Fully reversible\u003C\u002Fstrong> — bulk conversion (and uploads made with “Keep original file” on)\u003Cbr \u002F>\nkeep your original JPG\u002FPNG on disk and record a restore manifest, so you can put any image\u003Cbr \u002F>\n(or all of them) back with one click. Uploads that replace the original can’t be undone.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>WebP \u003Cem>or\u003C\u002Fem> AVIF\u003C\u002Fstrong> — choose the modern format you want. AVIF (newer, smaller) is offered\u003Cbr \u002F>\nautomatically when your server supports it, with a safe fall back to WebP.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>See your savings\u003C\u002Fstrong> — a built-in dashboard shows how much disk space you’ve saved, all\u003Cbr \u002F>\ncalculated on-site.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>What it does\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>\u003Cstrong>Converts on upload\u003C\u002Fstrong> — JPG\u002FJPEG and PNG uploads become WebP or AVIF automatically, and\u003Cbr \u002F>\nbecause the conversion happens before WordPress builds its sub-sizes, every thumbnail size\u003Cbr \u002F>\nis generated in the new format too.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Converts existing media\u003C\u002Fstrong> — a batch tool under \u003Cstrong>Media \u003Cspan aria-hidden=\"true\" class=\"wp-exclude-emoji\">→\u003C\u002Fspan> Convert Existing\u003C\u002Fstrong> processes\u003Cbr \u002F>\nyour library a few images at a time with a live progress bar (no timeouts).\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Convert & restore from the Media Library\u003C\u002Fstrong> — convert or restore a single image right\u003Cbr \u002F>\nfrom its details (both list and grid view), or select several and use the Media-list bulk\u003Cbr \u002F>\nactions; roll back the whole library from the Tools page.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Resizes oversized images\u003C\u002Fstrong> — anything larger than your chosen longest-edge limit is\u003Cbr \u002F>\nscaled down (aspect ratio preserved); smaller images are never enlarged.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Never breaks an upload\u003C\u002Fstrong> — if anything goes wrong, or the server can’t write the format,\u003Cbr \u002F>\nthe original file is kept and the upload proceeds normally.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>Settings\u003C\u002Fh4>\n\u003Cp>Under \u003Cstrong>Settings \u003Cspan aria-hidden=\"true\" class=\"wp-exclude-emoji\">→\u003C\u002Fspan> Convert to WebP\u002FAVIF\u003C\u002Fstrong>:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Cstrong>Enable conversion\u003C\u002Fstrong> — master on\u002Foff switch for upload-time conversion.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Output format\u003C\u002Fstrong> — WebP (broad support) or AVIF (smaller, when available).\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Quality\u003C\u002Fstrong> — 1–100 (default 80). Lower means smaller files.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Max longest edge (px)\u003C\u002Fstrong> — default 1600. Set 0 to convert without resizing.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Keep original file\u003C\u002Fstrong> — affects new uploads only; off by default (the original is\u003Cbr \u002F>\nreplaced). Turn on to keep both — and only then can an upload be restored later.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Convert these formats\u003C\u002Fstrong> — JPG\u002FJPEG and PNG.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>Converting and restoring existing images\u003C\u002Fh4>\n\u003Cp>Go to \u003Cstrong>Media \u003Cspan aria-hidden=\"true\" class=\"wp-exclude-emoji\">→\u003C\u002Fspan> Convert Existing\u003C\u002Fstrong>. The page shows how many images still need converting,\u003Cbr \u002F>\nhow many can be restored, and your running savings total. Conversions run in safe batches.\u003C\u002Fp>\n\u003Cp>Because bulk conversion \u003Cstrong>always keeps the original file on disk\u003C\u002Fstrong>, the change is never\u003Cbr \u002F>\ndestructive: use \u003Cstrong>Restore all to originals\u003C\u002Fstrong> on the Tools page, or the \u003Cstrong>Restore original\u003C\u002Fstrong>\u003Cbr \u002F>\nrow action on any converted item in the Media list (single images, or several at once via the\u003Cbr \u002F>\nMedia-list bulk actions), to delete the converted files and put the attachment back exactly\u003Cbr \u002F>\nas it was. Uploads converted with \u003Cstrong>Keep original file\u003C\u002Fstrong> turned on are restorable the same\u003Cbr \u002F>\nway; uploads that replaced their original cannot be undone.\u003C\u002Fp>\n\u003Ch4>Privacy\u003C\u002Fh4>\n\u003Cp>This plugin contacts \u003Cstrong>no external server\u003C\u002Fstrong>, collects no data, and adds no tracking. WebP\u003Cbr \u002F>\nand AVIF are written by your own server’s image library. Everything happens on your site.\u003C\u002Fp>\n","Private, reversible image optimization: convert uploads and existing media to WebP or AVIF on your own server, with one-click restore.",66,"2026-07-02T13:37:00.000Z","7.0.2","6.0","7.4",[26,27,28,29,30],"avif","convert","optimization","privacy","webp","https:\u002F\u002Fwww.designed2use.co.uk\u002Fwordpress-plugins-built-properly\u002Fconvert-to-webp\u002F","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fdesigned2use-convert-to-webp.1.0.0.zip",null,"2026-07-22T17:31:50.256Z",{"slug":36,"name":37,"version":38,"author":5,"author_profile":6,"description":39,"short_description":40,"active_installs":8,"downloaded":41,"rating":8,"num_ratings":8,"last_updated":42,"tested_up_to":22,"requires_at_least":43,"requires_php":44,"tags":45,"homepage":51,"download_link":52,"security_score":9,"vuln_count":8,"unpatched_count":8,"last_vuln_date":33,"fetched_at":34},"designed2use-events","Designed2Use Events","1.0.4","\u003Cp>Designed2Use Events is a self-contained events calendar for WordPress. Events\u003Cbr \u002F>\nand venues are custom post types — not products — so the calendar works fully\u003Cbr \u002F>\non its own. When WooCommerce is active, an opt-in ticketing module turns\u003Cbr \u002F>\nevents into purchasable tickets with attendee capture, capacity tracking,\u003Cbr \u002F>\nsale windows and refund-aware capacity release.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Calendar without WooCommerce\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Events and venues as custom post types, with categories and tags\u003C\u002Fli>\n\u003Cli>Frontend Pages for the calendar (\u003Ccode>\u002Fevents\u002F\u003C\u002Fcode>) and the venues archive\u003Cbr \u002F>\n(\u003Ccode>\u002Fvenues\u002F\u003C\u002Fcode>) — created on activation and rendered through your active\u003Cbr \u002F>\ntheme, no template takeover\u003C\u002Fli>\n\u003Cli>Month + List calendar views with venue \u002F category \u002F featured filters,\u003Cbr \u002F>\nprev \u002F next month navigation, and a shareable URL for every state\u003C\u002Fli>\n\u003Cli>Server-rendered first paint plus a vanilla-JS REST-driven view swap —\u003Cbr \u002F>\nno JS framework, no build step\u003C\u002Fli>\n\u003Cli>Single-event pages with schedule, venue, address and an embedded\u003Cbr \u002F>\nOpenStreetMap (Leaflet) map\u003C\u002Fli>\n\u003Cli>Single-venue pages with address, map and upcoming events\u003C\u002Fli>\n\u003Cli>Multi-day events span every day they cover in the month view, with a\u003Cbr \u002F>\n“Through {date}” hint in the list view\u003C\u002Fli>\n\u003Cli>JSON-LD \u003Ccode>Event\u003C\u002Fcode> schema in the document \u003Ccode>\u003Chead>\u003C\u002Fcode> for Rich Results\u003C\u002Fli>\n\u003Cli>Per-event \u003Ccode>.ics\u003C\u002Fcode> download and a subscribable iCal feed\u003Cbr \u002F>\n(\u003Ccode>\u002Fevent\u002F{slug}\u002Ffeed\u002Fics\u002F\u003C\u002Fcode>)\u003C\u002Fli>\n\u003Cli>Theme overrides — copy any template part to\u003Cbr \u002F>\n  your-theme\u002Fdesigned2use-events\u002F{name}.php\u003C\u002Fli>\n\u003Cli>Five free shortcodes (\u003Ccode>[d2uevents_calendar]\u003C\u002Fcode>, \u003Ccode>[d2uevents_list]\u003C\u002Fcode>,\u003Cbr \u002F>\n  [d2uevents_event], \u003Ccode>[d2uevents_venues]\u003C\u002Fcode>) and matching server-rendered blocks\u003Cbr \u002F>\nunder an “Events shortcodes” inserter category\u003C\u002Fli>\n\u003Cli>REST endpoint \u003Ccode>\u002Fwp-json\u002Fd2uevents\u002Fv1\u002Foccurrences\u003C\u002Fcode> for headless use\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>\u003Cstrong>Optional WooCommerce ticketing\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cp>When WooCommerce is active, the Tickets meta box on the event editor\u003Cbr \u002F>\nappears and the rest of the integration switches on:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Create a ticket product directly from the event, or link an existing\u003Cbr \u002F>\nproduct\u003C\u002Fli>\n\u003Cli>Inline editor on the event admin for name \u002F description \u002F price \u002F\u003Cbr \u002F>\nper-ticket capacity \u002F sale window — no round-trip to the product\u003Cbr \u002F>\neditor for the common fields\u003C\u002Fli>\n\u003Cli>Single-cap cascade: per-ticket \u003Cspan aria-hidden=\"true\" class=\"wp-exclude-emoji\">→\u003C\u002Fspan> event \u003Cspan aria-hidden=\"true\" class=\"wp-exclude-emoji\">→\u003C\u002Fspan> venue \u003Cspan aria-hidden=\"true\" class=\"wp-exclude-emoji\">→\u003C\u002Fspan> settings (first\u003Cbr \u002F>\nset value wins) so an admin can choose where to track capacity\u003C\u002Fli>\n\u003Cli>Sale window with event-end fallback — the form is replaced with a\u003Cbr \u002F>\n“Tickets go on sale on X” or “Ticket sales have ended” notice as\u003Cbr \u002F>\nappropriate\u003C\u002Fli>\n\u003Cli>Atomic capacity decrement at order completion — concurrent oversells\u003Cbr \u002F>\ncollapse to exactly one winner; the rejected order is recorded as an\u003Cbr \u002F>\norder note and a debug-log entry\u003C\u002Fli>\n\u003Cli>Refund-aware capacity release — the same counter the booking\u003Cbr \u002F>\nincremented is released\u003C\u002Fli>\n\u003Cli>Per-ticket attendee capture (name + email) on the event page — block\u003Cbr \u002F>\ncart \u002F block checkout \u002F classic cart all show the data, no React\u003Cbr \u002F>\nbuild step required\u003C\u002Fli>\n\u003Cli>Cart-aware quantity input — the visitor cannot purchase more tickets\u003Cbr \u002F>\nthan remain\u003C\u002Fli>\n\u003Cli>Block cart \u002F mini-cart quantity is locked at the Store API schema\u003Cbr \u002F>\nlevel so attendee mappings cannot be quietly broken from the cart\u003C\u002Fli>\n\u003Cli>HPOS (High-Performance Order Storage) compatible\u003C\u002Fli>\n\u003Cli>Per-event Attendees admin screen with a CSV export of every booking\u003C\u002Fli>\n\u003Cli>WooCommerce privacy-export and erasure integration — attendee\u003Cbr \u002F>\npersonal data flows through the standard “export \u002F erase personal\u003Cbr \u002F>\ndata” tools\u003C\u002Fli>\n\u003Cli>My-account view-order page lets the customer edit attendee details\u003Cbr \u002F>\nuntil a configurable cutoff before the event\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>\u003Cstrong>Developer friendly\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Public \u003Ccode>d2uevents_\u003C\u002Fcode> action \u002F filter API — a documented contract for\u003Cbr \u002F>\nthird-party developers, not just the free \u003Cspan aria-hidden=\"true\" class=\"wp-exclude-emoji\">↔\u003C\u002Fspan> Pro boundary\u003Cbr \u002F>\n(\u003Ccode>docs\u002Fhooks.md\u003C\u002Fcode>)\u003C\u002Fli>\n\u003Cli>Five shortcodes that mirror every server-rendered block\u003Cbr \u002F>\n(\u003Ccode>docs\u002Fshortcodes.md\u003C\u002Fcode>)\u003C\u002Fli>\n\u003Cli>Filterable template loader — every part is overridable from the\u003Cbr \u002F>\nactive theme (\u003Ccode>docs\u002Ftemplates.md\u003C\u002Fcode>)\u003C\u002Fli>\n\u003Cli>PSR-4 autoloader, namespaced \u003Ccode>D2UEvents\\\u003C\u002Fcode>\u003C\u002Fli>\n\u003Cli>WooCommerce ticketing module is fully isolated — nothing outside it\u003Cbr \u002F>\nreferences a WooCommerce symbol, so the plugin works without\u003Cbr \u002F>\nWooCommerce installed at all\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>\u003Cstrong>Designed2Use Events Pro — Coming Soon!\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cp>The free plugin is the real product, not a teaser — every feature above\u003Cbr \u002F>\nstays free, forever. Pro adds power alongside it, never gating what you\u003Cbr \u002F>\nalready have. Here’s what’s on the way:\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Cstrong>Recurring events\u003C\u002Fstrong> — daily, weekly, monthly and custom patterns, with\u003Cbr \u002F>\nproper series editing.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Multi-tier tickets\u003C\u002Fstrong> — early-bird, standard and VIP pricing tiers, with\u003Cbr \u002F>\nper-occurrence inventory.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Registration form builder\u003C\u002Fstrong> — collect exactly the attendee information\u003Cbr \u002F>\nyou need.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>QR check-in\u003C\u002Fstrong> — scan attendees in at the door from your phone.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Organizers\u003C\u002Fstrong> — give each event an organizer profile with their own\u003Cbr \u002F>\ndetails and listings.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Week, Day and Map views\u003C\u002Fstrong> — more ways for visitors to browse what’s on.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Importer\u003C\u002Fstrong> — bring your events across from The Events Calendar.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Automatic updates\u003C\u002Fstrong> — licensed, with one-click updates straight from\u003Cbr \u002F>\nyour dashboard.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>Pro hooks into exactly the same public \u003Ccode>d2uevents_\u003C\u002Fcode> API a third-party\u003Cbr \u002F>\nadd-on would — no privileged access, no patching of free internals. See\u003Cbr \u002F>\n\u003Ca href=\"https:\u002F\u002Fdesigned2use.co.uk\u002Fplugins\u002Fdesigned2use-events\u002F\" rel=\"nofollow ugc\">designed2use.co.uk\u002Fplugins\u002Fdesigned2use-events\u002F\u003C\u002Fa>.\u003C\u002Fp>\n\u003Ch3>External services\u003C\u002Fh3>\n\u003Cp>This plugin relies on two OpenStreetMap services to provide venue geocoding and\u003Cbr \u002F>\nmaps. Both are optional to how you use the plugin and can be disabled or replaced\u003Cbr \u002F>\n(see below).\u003C\u002Fp>\n\u003Cp>\u003Cstrong>1. OpenStreetMap Nominatim (address geocoding)\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cp>When you create or edit a venue and enter an address but leave the latitude and\u003Cbr \u002F>\nlongitude blank, the plugin sends that address to the OpenStreetMap Nominatim\u003Cbr \u002F>\nservice to look up its coordinates. The request includes the address you entered\u003Cbr \u002F>\nand a User-Agent identifying this plugin and your site’s URL (required by\u003Cbr \u002F>\nNominatim’s usage policy). This happens only in the admin when a venue is saved,\u003Cbr \u002F>\nis throttled to one request per second, and results are cached for seven days. No\u003Cbr \u002F>\nrequest is sent if you fill in the latitude\u002Flongitude yourself, or if you replace\u003Cbr \u002F>\nthe provider via the \u003Ccode>d2uevents_geocode_provider\u003C\u002Fcode> filter.\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Service: OpenStreetMap Nominatim — https:\u002F\u002Fnominatim.org\u002F\u003C\u002Fli>\n\u003Cli>Usage policy: https:\u002F\u002Foperations.osmfoundation.org\u002Fpolicies\u002Fnominatim\u002F\u003C\u002Fli>\n\u003Cli>Privacy policy: https:\u002F\u002Fwiki.osmfoundation.org\u002Fwiki\u002FPrivacy_Policy\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>\u003Cstrong>2. OpenStreetMap map tiles (Leaflet maps)\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cp>Single venue pages, the venues archive and the venue map display an interactive map\u003Cbr \u002F>\nrendered with the bundled Leaflet library. The map image tiles are loaded in the\u003Cbr \u002F>\nvisitor’s browser from the OpenStreetMap tile servers, which receive the visitor’s\u003Cbr \u002F>\nIP address and the map area being viewed. The tile source is configurable under\u003Cbr \u002F>\n\u003Cstrong>Events \u003Cspan aria-hidden=\"true\" class=\"wp-exclude-emoji\">→\u003C\u002Fspan> Settings\u003C\u002Fstrong> (the “Map tile URL”), so you may point it at your own or a\u003Cbr \u002F>\nthird-party tile provider, and maps are only shown on pages that display one.\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Service: OpenStreetMap tile servers — https:\u002F\u002Fwww.openstreetmap.org\u002F\u003C\u002Fli>\n\u003Cli>Tile usage policy: https:\u002F\u002Foperations.osmfoundation.org\u002Fpolicies\u002Ftiles\u002F\u003C\u002Fli>\n\u003Cli>Privacy policy: https:\u002F\u002Fwiki.osmfoundation.org\u002Fwiki\u002FPrivacy_Policy\u003C\u002Fli>\n\u003C\u002Ful>\n","A standalone WordPress events calendar with month + list views, venue archive, iCal feeds, and optional WooCommerce ticketing.",112,"2026-06-29T13:28:00.000Z","6.4","8.1",[46,47,48,49,50],"calendar","events","ical","tickets","venues","https:\u002F\u002Fdesigned2use.co.uk\u002Fplugins\u002Fdesigned2use-events\u002F","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fdesigned2use-events.1.0.4.zip",{"slug":54,"name":55,"version":56,"author":5,"author_profile":6,"description":57,"short_description":58,"active_installs":8,"downloaded":59,"rating":8,"num_ratings":8,"last_updated":60,"tested_up_to":22,"requires_at_least":23,"requires_php":24,"tags":61,"homepage":67,"download_link":68,"security_score":9,"vuln_count":8,"unpatched_count":8,"last_vuln_date":33,"fetched_at":34},"designed2use-ga-views","Designed2Use GA Views","2.0.1","\u003Cp>Designed2Use GA Views shows the Google Analytics 4 pageview total for a post or page using a simple shortcode. It is built so a visitor’s page load is never held up by the slow Google API.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>How it fetches counts (hybrid model)\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cul>\n\u003Cli>A cached value is shown whenever one is fresh.\u003C\u002Fli>\n\u003Cli>On a cache miss for a \u003Cstrong>recent\u003C\u002Fstrong> post (published within your live-fetch window), the count is fetched live with a short, fail-fast timeout over a narrow date range (the post’s publish date to today) — fast because the query window is small.\u003C\u002Fli>\n\u003Cli>On a cache miss for an \u003Cstrong>older\u003C\u002Fstrong> post, a background job is queued and the last stored value is shown immediately. The slow, history-heavy query runs off the request path.\u003C\u002Fli>\n\u003Cli>Administrators can force a live refresh of the page they are viewing with \u003Ccode>?d2ugav_refresh=1\u003C\u002Fcode>.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>\u003Cstrong>Features\u003C\u002Fstrong>\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Ccode>[d2ugav_pageview]\u003C\u002Fcode> shortcode, or automatic display appended to post content \u002F Echo Knowledge Base header.\u003C\u002Fli>\n\u003Cli>Settings page for credentials, property ID, live-fetch window, cache duration, label, metric, event name, and post types.\u003C\u002Fli>\n\u003Cli>Optional per-post “legacy baseline” to add historical (e.g. Universal Analytics) views to the live GA4 count.\u003C\u002Fli>\n\u003Cli>Lightweight: talks to the GA4 Data API directly over REST with a self-signed service-account token — no bundled multi-megabyte SDK.\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>Google Analytics is a third-party service governed by Google’s own terms; see https:\u002F\u002Fpolicies.google.com\u002Fprivacy and https:\u002F\u002Fmarketingplatform.google.com\u002Fabout\u002Fanalytics\u002Fterms\u002Fus\u002F .\u003C\u002Fp>\n","Display Google Analytics 4 pageview counts on posts and pages. Recent posts fetch fast; older posts refresh in the background.",111,"2026-06-29T12:07:00.000Z",[62,63,64,65,66],"analytics","ga4","google-analytics","pageviews","views","https:\u002F\u002Fwww.designed2use.co.uk\u002Fwordpress-plugins-built-properly\u002Fga-views\u002F","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002Fdesigned2use-ga-views.2.0.1.zip"]