[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"$fAZeI0WcRcGiO5kh8bdHZ6XCJJY00Kx5Bbgxx_t284Ao":3},{"slug":4,"display_name":4,"profile_url":5,"plugin_count":6,"total_installs":7,"avg_security_score":8,"avg_patch_time_days":9,"trust_score":10,"computed_at":11,"plugins":12},"4wpdev","https:\u002F\u002Fprofiles.wordpress.org\u002F4wpdev\u002F",6,0,100,30,94,"2026-08-28T23:30:06.939Z",[13,34,51,66,81,96],{"slug":14,"name":15,"version":16,"author":4,"author_profile":5,"description":17,"short_description":18,"active_installs":7,"downloaded":19,"rating":7,"num_ratings":7,"last_updated":20,"tested_up_to":21,"requires_at_least":22,"requires_php":23,"tags":24,"homepage":30,"download_link":31,"security_score":8,"vuln_count":7,"unpatched_count":7,"last_vuln_date":32,"fetched_at":33},"4wp-account","4WP Account","1.0.4","\u003Cp>\u003Cstrong>4WP Account\u003C\u002Fstrong> is a user account hub for WordPress: social sign-in (OAuth 2.0), a front-end account page, header account menu block, and optional WooCommerce login buttons.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Active in this release:\u003C\u002Fstrong> Google and GitHub login when enabled in \u003Cstrong>4WP Account \u003Cspan aria-hidden=\"true\" class=\"wp-exclude-emoji\">→\u003C\u002Fspan> Auth\u003C\u002Fstrong>. Facebook and TikTok appear in settings as \u003Cem>coming soon\u003C\u002Fem> — they are not available for login yet.\u003C\u002Fp>\n\u003Cp>A plugin by \u003Ca href=\"https:\u002F\u002F4wp.dev\u002F\" rel=\"nofollow ugc\">4wp.dev\u003C\u002Fa>. \u003Cstrong>4WP\u003C\u002Fstrong> is our project brand; the letters “WP” appear only as part of that brand name, not as a reference to WordPress. This plugin is not affiliated with, endorsed by, or sponsored by WordPress.\u003C\u002Fp>\n\u003Cp>Source code: \u003Ca href=\"https:\u002F\u002Fgithub.com\u002F4wpdev\u002F4wp-account\" rel=\"nofollow ugc\">github.com\u002F4wpdev\u002F4wp-account\u003C\u002Fa>\u003C\u002Fp>\n\u003Ch4>Key features\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>\u003Cstrong>Google and GitHub\u003C\u002Fstrong> OAuth sign-in (enable per provider in wp-admin)\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Account page\u003C\u002Fstrong> — \u003Ccode>[forwp_account]\u003C\u002Fcode> shortcode or \u003Ccode>forwp\u002Faccount\u003C\u002Fcode> block (sign-in when logged out; cabinet when logged in)\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Account menu\u003C\u002Fstrong> — \u003Ccode>forwp\u002Faccount-menu\u003C\u002Fcode> block or \u003Ccode>[forwp_account_menu]\u003C\u002Fcode> for header dropdown\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Sign-in buttons\u003C\u002Fstrong> — \u003Ccode>[forwp_account_signin_buttons]\u003C\u002Fcode> or \u003Ccode>forwp\u002Fauth-buttons\u003C\u002Fcode> block\u003C\u002Fli>\n\u003Cli>\u003Cstrong>REST API\u003C\u002Fstrong> — \u003Ccode>\u002Fwp-json\u002Fforwp-account\u002Fv1\u002Fauth\u002F{provider}\u003C\u002Fcode> and OAuth callbacks\u003C\u002Fli>\n\u003Cli>\u003Cstrong>WooCommerce\u003C\u002Fstrong> — optional social buttons on My Account login\u002Fregister forms\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Subscriber options\u003C\u002Fstrong> — hide admin bar, redirect subscribers away from wp-admin\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>Privacy\u003C\u002Fh4>\n\u003Cp>OAuth tokens are exchanged server-side. Profile email and name from the provider are stored in WordPress user records. No data is sent to 4wp.dev.\u003C\u002Fp>\n\u003Ch4>Development\u003C\u002Fh4>\n\u003Cp>Run tests: \u003Ccode>composer install && composer run lint && composer run test\u003C\u002Fcode>\u003C\u002Fp>\n\u003Ch3>External services\u003C\u002Fh3>\n\u003Cp>This plugin connects to third-party OAuth providers when a visitor starts social login and when an administrator saves API credentials.\u003C\u002Fp>\n\u003Ch4>Google\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>\u003Cstrong>When:\u003C\u002Fstrong> User clicks Google sign-in; server exchanges the authorization code and reads profile email.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Terms:\u003C\u002Fstrong> \u003Ca href=\"https:\u002F\u002Fdevelopers.google.com\u002Fterms\" rel=\"nofollow ugc\">Google API Terms of Service\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Privacy:\u003C\u002Fstrong> \u003Ca href=\"https:\u002F\u002Fpolicies.google.com\u002Fprivacy\" rel=\"nofollow ugc\">Google Privacy Policy\u003C\u002Fa>\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>GitHub\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>\u003Cstrong>When:\u003C\u002Fstrong> User clicks GitHub sign-in; server exchanges the code and reads the primary verified email.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Terms:\u003C\u002Fstrong> \u003Ca href=\"https:\u002F\u002Fdocs.github.com\u002Fen\u002Fsite-policy\u002Fgithub-terms\u002Fgithub-terms-of-service\" rel=\"nofollow ugc\">GitHub Terms of Service\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Privacy:\u003C\u002Fstrong> \u003Ca href=\"https:\u002F\u002Fdocs.github.com\u002Fen\u002Fsite-policy\u002Fprivacy-policies\u002Fgithub-privacy-statement\" rel=\"nofollow ugc\">GitHub Privacy Statement\u003C\u002Fa>\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>Meta (Facebook) — planned\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>\u003Cstrong>When:\u003C\u002Fstrong> Not enabled in this release. Listed in admin as \u003Cem>coming soon\u003C\u002Fem>.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Terms:\u003C\u002Fstrong> \u003Ca href=\"https:\u002F\u002Fdevelopers.facebook.com\u002Fterms\u002F\" rel=\"nofollow ugc\">Meta Platform Terms\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Privacy:\u003C\u002Fstrong> \u003Ca href=\"https:\u002F\u002Fwww.facebook.com\u002Fprivacy\u002Fpolicy\u002F\" rel=\"nofollow ugc\">Meta Privacy Policy\u003C\u002Fa>\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>TikTok — planned\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>\u003Cstrong>When:\u003C\u002Fstrong> Not enabled in this release. Listed in admin as \u003Cem>coming soon\u003C\u002Fem>.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Terms:\u003C\u002Fstrong> \u003Ca href=\"https:\u002F\u002Fwww.tiktok.com\u002Flegal\u002Fterms-of-service\" rel=\"nofollow ugc\">TikTok Terms of Service\u003C\u002Fa>\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Privacy:\u003C\u002Fstrong> \u003Ca href=\"https:\u002F\u002Fwww.tiktok.com\u002Flegal\u002Fprivacy-policy\" rel=\"nofollow ugc\">TikTok Privacy Policy\u003C\u002Fa>\u003C\u002Fli>\n\u003C\u002Ful>\n","Social login with Google and GitHub, account page and blocks. Facebook and TikTok are planned for a future release.",115,"2026-06-23T10:26:00.000Z","7.0.2","6.4","8.0",[25,26,27,28,29],"account","github","google","oauth","social-login","https:\u002F\u002Fgithub.com\u002F4wpdev\u002F4wp-account","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002F4wp-account.1.0.4.zip",null,"2026-07-22T17:31:50.256Z",{"slug":35,"name":36,"version":37,"author":4,"author_profile":5,"description":38,"short_description":39,"active_installs":7,"downloaded":40,"rating":7,"num_ratings":7,"last_updated":41,"tested_up_to":21,"requires_at_least":22,"requires_php":42,"tags":43,"homepage":49,"download_link":50,"security_score":8,"vuln_count":7,"unpatched_count":7,"last_vuln_date":32,"fetched_at":33},"4wp-advanced-code","4WP Advanced Code","1.0.1","\u003Cp>\u003Cstrong>4WP Advanced Code\u003C\u002Fstrong> enhances \u003Cstrong>core\u002Fcode\u003C\u002Fstrong> blocks and provides a dedicated \u003Cstrong>Advanced Code\u003C\u002Fstrong> block with syntax highlighting, copy and share controls, optional notes, and SoftwareSourceCode JSON-LD for technical content.\u003C\u002Fp>\n\u003Cp>A plugin by \u003Ca href=\"https:\u002F\u002F4wp.dev\u002F\" rel=\"nofollow ugc\">4wp.dev\u003C\u002Fa>. \u003Cstrong>4WP\u003C\u002Fstrong> is our project brand; the letters “WP” appear only as part of that brand name, not as a reference to WordPress. This plugin is not affiliated with, endorsed, or sponsored by WordPress.\u003C\u002Fp>\n\u003Cp>Source code: \u003Ca href=\"https:\u002F\u002Fgithub.com\u002F4wpdev\u002F4wp-advanced-code\" rel=\"nofollow ugc\">github.com\u002F4wpdev\u002F4wp-advanced-code\u003C\u002Fa>\u003C\u002Fp>\n\u003Ch4>Key features\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>\u003Cstrong>Syntax highlighting\u003C\u002Fstrong> — bundled Highlight.js (no CDN on the frontend)\u003C\u002Fli>\n\u003Cli>\u003Cstrong>core\u002Fcode wrapper\u003C\u002Fstrong> — upgrade existing Code blocks without re-entering content\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Advanced Code block\u003C\u002Fstrong> — per-block language, theme, copy\u002Fshare, and SEO fields\u003C\u002Fli>\n\u003Cli>\u003Cstrong>JSON-LD\u003C\u002Fstrong> — optional SoftwareSourceCode structured data\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Settings\u003C\u002Fstrong> — global defaults under Settings \u003Cspan aria-hidden=\"true\" class=\"wp-exclude-emoji\">→\u003C\u002Fspan> 4WP Advanced Code\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>Privacy\u003C\u002Fh4>\n\u003Cp>Copy and share actions run in the visitor browser. When share opens Twitter or LinkedIn, the visitor leaves your site to those third-party services. No personal data is sent to 4wp.dev.\u003C\u002Fp>\n\u003Ch3>Blocks\u003C\u002Fh3>\n\u003Cp>This plugin provides 1 block.\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Cstrong>Advanced Code\u003C\u002Fstrong> — syntax-highlighted code with copy, share, and SEO controls.\u003C\u002Fli>\n\u003C\u002Ful>\n","Enhanced Code block for Gutenberg with syntax highlighting, copy and share controls, and optional SoftwareSourceCode JSON-LD.",130,"2026-06-18T17:01:00.000Z","7.4",[44,45,46,47,48],"code","developer","gutenberg","json-ld","syntax-highlighting","https:\u002F\u002F4wp.dev\u002F","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002F4wp-advanced-code.1.0.1.zip",{"slug":52,"name":53,"version":54,"author":4,"author_profile":5,"description":55,"short_description":56,"active_installs":7,"downloaded":57,"rating":7,"num_ratings":7,"last_updated":58,"tested_up_to":21,"requires_at_least":22,"requires_php":42,"tags":59,"homepage":49,"download_link":65,"security_score":8,"vuln_count":7,"unpatched_count":7,"last_vuln_date":32,"fetched_at":33},"4wp-drive","4WP Drive","1.0.2","\u003Cp>\u003Cstrong>4WP Drive\u003C\u002Fstrong> connects a Google Drive folder workflow to WordPress: writers drop documents in Drive, editors review them in an admin \u003Cstrong>Inbox\u003C\u002Fstrong>, and approved content becomes \u003Cstrong>draft posts\u003C\u002Fstrong>—without copy-paste.\u003C\u002Fp>\n\u003Cp>A plugin by \u003Ca href=\"https:\u002F\u002F4wp.dev\u002F\" rel=\"nofollow ugc\">4wp.dev\u003C\u002Fa>.\u003C\u002Fp>\n\u003Ch4>Perfect for\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>\u003Cstrong>Editorial teams\u003C\u002Fstrong> that draft in Google Docs but publish in WordPress\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Agencies\u003C\u002Fstrong> with a shared Drive \u003Ccode>incoming\u002F\u003C\u002Fcode> folder and a review step before publish\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Content pipelines\u003C\u002Fstrong> that need structured front-matter (title, slug, categories, SEO fields) parsed from the doc header\u003C\u002Fli>\n\u003Cli>Sites that want \u003Cstrong>API credentials stored encrypted\u003C\u002Fstrong> and \u003Cstrong>OAuth handled server-side\u003C\u002Fstrong>\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>How it works\u003C\u002Fh4>\n\u003Col>\n\u003Cli>Install and activate \u003Cstrong>4WP Drive\u003C\u002Fstrong>.\u003C\u002Fli>\n\u003Cli>Create Google OAuth credentials and connect Drive in \u003Cstrong>Storage sources\u003C\u002Fstrong>.\u003C\u002Fli>\n\u003Cli>Set your Drive \u003Cstrong>root folder ID\u003C\u002Fstrong>; the plugin uses \u003Ccode>incoming\u002F\u003C\u002Fcode> and \u003Ccode>published\u002F\u003C\u002Fcode> subfolders.\u003C\u002Fli>\n\u003Cli>Drop a Google Doc (with optional image) into \u003Ccode>incoming\u002F\u003C\u002Fcode> or run \u003Cstrong>Sync\u003C\u002Fstrong>.\u003C\u002Fli>\n\u003Cli>Open \u003Cstrong>Inbox\u003C\u002Fstrong> \u003Cspan aria-hidden=\"true\" class=\"wp-exclude-emoji\">→\u003C\u002Fspan> Preview \u003Cspan aria-hidden=\"true\" class=\"wp-exclude-emoji\">→\u003C\u002Fspan> \u003Cstrong>Import as Draft\u003C\u002Fstrong> or Reject.\u003C\u002Fli>\n\u003Cli>On import, files move to \u003Ccode>published\u002F\u003C\u002Fcode> in Drive.\u003C\u002Fli>\n\u003C\u002Fol>\n\u003Ch4>Key features\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>\u003Cstrong>Google Drive OAuth\u003C\u002Fstrong> — connect an admin Google account; tokens stored encrypted\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Folder sync\u003C\u002Fstrong> — scan \u003Ccode>incoming\u002F\u003C\u002Fcode> for new Google Docs and images\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Admin Inbox\u003C\u002Fstrong> — preview HTML, import as draft, or reject\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Document template\u003C\u002Fstrong> — front-matter lines before a separator (\u003Ccode>---\u003C\u002Fcode> or \u003Ccode>=====\u003C\u002Fcode>) map to post fields; body becomes post content (headings, lists, bold preserved)\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Configurable field map\u003C\u002Fstrong> — title, slug, categories, tags, author, dates, SEO meta (when supported)\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Featured image\u003C\u002Fstrong> — import image from the same Drive subfolder\u003C\u002Fli>\n\u003Cli>\u003Cstrong>REST API\u003C\u002Fstrong> + \u003Cstrong>WP-CLI\u003C\u002Fstrong> \u003Ccode>wp forwp-drive sync\u003C\u002Fcode> for manual sync\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Roadmap sources\u003C\u002Fstrong> — GitHub Markdown\u002FMDX and additional storage providers registered for future releases\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>Privacy\u003C\u002Fh4>\n\u003Cp>OAuth tokens and Google API credentials are stored in your WordPress database (encrypted). Document content is fetched from Google Drive only when an administrator runs sync or import. No visitor-facing tracking.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>4WP\u003C\u002Fstrong> is our project brand; the letters “WP” appear only as part of that brand name, not as a reference to WordPress. This plugin is not affiliated with, endorsed, or sponsored by WordPress.\u003C\u002Fp>\n\u003Cp>Source code: \u003Ca href=\"https:\u002F\u002Fgithub.com\u002F4wpdev\u002F4wp-drive\" rel=\"nofollow ugc\">github.com\u002F4wpdev\u002F4wp-drive\u003C\u002Fa>\u003C\u002Fp>\n\u003Ch4>Development\u003C\u002Fh4>\n\u003Cp>Human-readable PHP source is in the public GitHub repository above. The plugin ZIP includes \u003Ccode>src\u002F\u003C\u002Fcode> (PSR-4 autoload via \u003Ccode>src\u002FAutoload.php\u003C\u002Fcode> when \u003Ccode>vendor\u002F\u003C\u002Fcode> is absent). No npm build step — admin scripts ship as plain JS in \u003Ccode>assets\u002F\u003C\u002Fcode>.\u003C\u002Fp>\n\u003Cp>Run tests: \u003Ccode>composer install && composer test && composer run lint\u003C\u002Fcode>\u003C\u002Fp>\n\u003Ch3>External services\u003C\u002Fh3>\n\u003Cp>This plugin connects to \u003Cstrong>Google\u003C\u002Fstrong> services when an administrator configures OAuth and syncs or imports documents.\u003C\u002Fp>\n\u003Ch4>Google OAuth 2.0\u003C\u002Fh4>\n\u003Cp>Used to authorize access to the connected Google account’s Drive files.\u003C\u002Fp>\n\u003Cul>\n\u003Cli>Authorization URL: \u003Ccode>https:\u002F\u002Faccounts.google.com\u002Fo\u002Foauth2\u002Fv2\u002Fauth\u003C\u002Fcode>\u003C\u002Fli>\n\u003Cli>Token URL: \u003Ccode>https:\u002F\u002Foauth2.googleapis.com\u002Ftoken\u003C\u002Fcode>\u003C\u002Fli>\n\u003Cli>Scope: \u003Ccode>https:\u002F\u002Fwww.googleapis.com\u002Fauth\u002Fdrive\u003C\u002Fcode>\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>When an administrator clicks \u003Cstrong>Connect Google Drive\u003C\u002Fstrong>, the browser is redirected to Google to sign in and grant access. WordPress stores refresh and access tokens encrypted in the site database. Client ID and Client Secret are stored encrypted (or may be defined in \u003Ccode>wp-config.php\u003C\u002Fcode>).\u003C\u002Fp>\n\u003Cp>Google terms: https:\u002F\u002Fpolicies.google.com\u002Fterms\u003Cbr \u002F>\nGoogle privacy: https:\u002F\u002Fpolicies.google.com\u002Fprivacy\u003C\u002Fp>\n\u003Ch4>Google Drive API\u003C\u002Fh4>\n\u003Cp>Used to list folders, download Google Docs (export as HTML\u002FDOCX), and move files after import.\u003C\u002Fp>\n\u003Cul>\n\u003Cli>API hostname: \u003Ccode>https:\u002F\u002Fwww.googleapis.com\u002Fdrive\u002Fv3\u002F\u003C\u002Fcode> (and related export endpoints)\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Cp>Requests are made \u003Cstrong>server-side\u003C\u002Fstrong> only when an administrator runs sync, preview, or import. Document metadata and file content are processed on your server to create WordPress posts.\u003C\u002Fp>\n\u003Cp>Google Drive API terms follow Google Cloud \u002F Google API Services terms linked from the Google Cloud Console.\u003C\u002Fp>\n","Import Google Docs from Drive into WordPress drafts—editorial inbox, field mapping, and secure OAuth on your server.",196,"2026-06-17T20:42:00.000Z",[60,61,62,63,64],"content-pipeline","drafts","editorial","google-drive","import","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002F4wp-drive.1.0.2.zip",{"slug":67,"name":68,"version":69,"author":4,"author_profile":5,"description":70,"short_description":71,"active_installs":7,"downloaded":72,"rating":7,"num_ratings":7,"last_updated":73,"tested_up_to":21,"requires_at_least":74,"requires_php":42,"tags":75,"homepage":79,"download_link":80,"security_score":8,"vuln_count":7,"unpatched_count":7,"last_vuln_date":32,"fetched_at":33},"4wp-faq","4WP FAQ","1.0.0","\u003Cp>4WP FAQ is a smart wrapper around WordPress core \u003Cstrong>Accordion\u003C\u002Fstrong> blocks. It adds FAQPage JSON-LD, an optional aggregated FAQ registry, and usage context while keeping your front-end design intact.\u003C\u002Fp>\n\u003Cp>A plugin by \u003Ca href=\"https:\u002F\u002F4wp.dev\u002F\" rel=\"nofollow ugc\">4wp.dev\u003C\u002Fa>. \u003Cstrong>4WP\u003C\u002Fstrong> is our project brand; this plugin is not affiliated with, endorsed, or sponsored by WordPress.\u003C\u002Fp>\n\u003Cp>Source code and releases: \u003Ca href=\"https:\u002F\u002Fgithub.com\u002F4wpdev\u002F4wp-faq\" rel=\"nofollow ugc\">github.com\u002F4wpdev\u002F4wp-faq\u003C\u002Fa>\u003C\u002Fp>\n\u003Ch4>Development\u003C\u002Fh4>\n\u003Cp>JavaScript and CSS are built with \u003Ccode>@wordpress\u002Fscripts\u003C\u002Fcode>. Human-readable source (\u003Ccode>src\u002F\u003C\u002Fcode>, \u003Ccode>webpack.config.js\u003C\u002Fcode>, \u003Ccode>package.json\u003C\u002Fcode>) is in the public GitHub repository above — not in the distributed plugin ZIP.\u003C\u002Fp>\n\u003Cp>From a clone of the repository:\u003C\u002Fp>\n\u003Col>\n\u003Cli>\u003Ccode>cd\u003C\u002Fcode> into the plugin directory\u003C\u002Fli>\n\u003Cli>\u003Ccode>npm install\u003C\u002Fcode>\u003C\u002Fli>\n\u003Cli>\u003Ccode>npm run build\u003C\u002Fcode> — compiles block, admin, and setup apps into \u003Ccode>build\u002F\u003C\u002Fcode>\u003C\u002Fli>\n\u003C\u002Fol>\n\u003Ch4>Key features\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>Wrap \u003Cstrong>Accordion\u003C\u002Fstrong> \u002F \u003Cstrong>Accordion Item\u003C\u002Fstrong> (legacy \u003Cstrong>Details\u003C\u002Fstrong> supported)\u003C\u002Fli>\n\u003Cli>\u003Cstrong>FAQPage JSON-LD\u003C\u002Fstrong> — site-wide toggle plus per-block override\u003C\u002Fli>\n\u003Cli>Optional \u003Cstrong>FAQ registry\u003C\u002Fstrong> CPT with content scan and usage stats\u003C\u002Fli>\n\u003Cli>Setup wizard for registry post type and taxonomy slugs\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Convert to FAQ\u003C\u002Fstrong> toolbar action on Accordion blocks\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>How it works\u003C\u002Fh4>\n\u003Col>\n\u003Cli>Build FAQs with core Accordion blocks (or convert existing Accordion).\u003C\u002Fli>\n\u003Cli>Click \u003Cstrong>Convert to FAQ\u003C\u002Fstrong> to wrap content in \u003Ccode>forwp\u002Ffaq\u003C\u002Fcode>.\u003C\u002Fli>\n\u003Cli>Enable JSON-LD in \u003Cstrong>FAQ \u003Cspan aria-hidden=\"true\" class=\"wp-exclude-emoji\">→\u003C\u002Fspan> Settings\u003C\u002Fstrong> (recommended for SEO) or per block.\u003C\u002Fli>\n\u003Cli>Optionally complete setup to aggregate questions into a registry list.\u003C\u002Fli>\n\u003C\u002Fol>\n\u003Cp>JSON-LD on the front end does not require the registry. The registry is for browsing, reuse tracking, and future features.\u003C\u002Fp>\n","Smart FAQ wrapper for core Accordion: JSON-LD, optional registry, and per-block SEO—without duplicating your content.",193,"2026-05-28T18:01:00.000Z","6.0",[76,77,46,47,78],"accordion","faq","seo","https:\u002F\u002Fgithub.com\u002F4wpdev\u002F4wp-faq","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002F4wp-faq.1.0.0.zip",{"slug":82,"name":83,"version":84,"author":4,"author_profile":5,"description":85,"short_description":86,"active_installs":7,"downloaded":87,"rating":7,"num_ratings":7,"last_updated":88,"tested_up_to":21,"requires_at_least":22,"requires_php":42,"tags":89,"homepage":94,"download_link":95,"security_score":8,"vuln_count":7,"unpatched_count":7,"last_vuln_date":32,"fetched_at":33},"4wp-notifications","4WP Notifications","1.2.0","\u003Cp>\u003Cstrong>4WP Notifications\u003C\u002Fstrong> delivers a unified in-app notification inbox for logged-in WordPress users: a header bell with unread badge, a full notifications page, optional WooCommerce order alerts, and tools for developers to fire notifications from custom code.\u003C\u002Fp>\n\u003Cp>A plugin by \u003Ca href=\"https:\u002F\u002F4wp.dev\u002F\" rel=\"nofollow ugc\">4wp.dev\u003C\u002Fa>. \u003Cstrong>4WP\u003C\u002Fstrong> is our project brand; the letters “WP” appear only as part of that brand name, not as a reference to WordPress. This plugin is not affiliated with, endorsed, or sponsored by WordPress.\u003C\u002Fp>\n\u003Cp>Source code: \u003Ca href=\"https:\u002F\u002Fgithub.com\u002F4wpdev\u002F4wp-notifications\" rel=\"nofollow ugc\">github.com\u002F4wpdev\u002F4wp-notifications\u003C\u002Fa>\u003C\u002Fp>\n\u003Ch4>Key features\u003C\u002Fh4>\n\u003Cul>\n\u003Cli>\u003Cstrong>Notifications Bell block\u003C\u002Fstrong> — dropdown with unread count; add inside a Navigation block (header menu)\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Notifications List block\u003C\u002Fstrong> — full inbox page with mark read\u002Funread and live polling\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Shortcodes\u003C\u002Fstrong> — \u003Ccode>[forwp_notifications_bell]\u003C\u002Fcode> and \u003Ccode>[forwp_notifications]\u003C\u002Fcode> for classic themes\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Direct notifications\u003C\u002Fstrong> — admins broadcast to roles and\u002For individual users\u003C\u002Fli>\n\u003Cli>\u003Cstrong>WooCommerce\u003C\u002Fstrong> — optional alerts for new orders and status changes\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Developer hooks\u003C\u002Fstrong> — \u003Ccode>forwp_notification_event\u003C\u002Fcode> \u002F \u003Ccode>4wp_notification_event\u003C\u002Fcode> from PHP\u003C\u002Fli>\n\u003Cli>\u003Cstrong>REST API\u003C\u002Fstrong> — list, unread count, mark read\u002Funread, and \u003Cstrong>send\u003C\u002Fstrong> notifications (authenticated)\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch4>Privacy\u003C\u002Fh4>\n\u003Cp>Notifications are stored in your WordPress database and shown only to the logged-in recipient. Read endpoints require an authenticated user session. Send endpoints require administrator capability (default: \u003Ccode>manage_options\u003C\u002Fcode>). No data is sent to 4wp.dev.\u003C\u002Fp>\n\u003Ch4>Development\u003C\u002Fh4>\n\u003Cp>Human-readable PHP source is in the public GitHub repository above. No npm build step — block editor scripts ship as plain JS in \u003Ccode>assets\u002Fblocks\u002F\u003C\u002Fcode>.\u003C\u002Fp>\n\u003Cp>Run tests: \u003Ccode>composer install && composer test && composer run lint\u003C\u002Fcode>\u003C\u002Fp>\n\u003Ch3>Blocks\u003C\u002Fh3>\n\u003Cp>This plugin provides 2 blocks.\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Cstrong>4WP Notifications Bell\u003C\u002Fstrong> (\u003Ccode>forwp\u002Fnotifications-bell\u003C\u002Fcode>) — bell icon and recent notifications dropdown (Navigation child block).\u003C\u002Fli>\n\u003Cli>\u003Cstrong>4WP Notifications List\u003C\u002Fstrong> (\u003Ccode>forwp\u002Fnotifications\u003C\u002Fcode>) — full notification list for a page.\u003C\u002Fli>\n\u003C\u002Ful>\n","In-app notifications for logged-in users — bell block, inbox list, WooCommerce events, admin broadcasts, and a developer REST send API.",121,"2026-06-19T18:45:00.000Z",[90,46,91,92,93],"bell","inbox","notifications","woocommerce","https:\u002F\u002Fgithub.com\u002F4wpdev\u002F4wp-notifications","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002F4wp-notifications.1.2.0.zip",{"slug":97,"name":98,"version":37,"author":4,"author_profile":5,"description":99,"short_description":100,"active_installs":7,"downloaded":101,"rating":7,"num_ratings":7,"last_updated":102,"tested_up_to":21,"requires_at_least":22,"requires_php":42,"tags":103,"homepage":49,"download_link":109,"security_score":8,"vuln_count":7,"unpatched_count":7,"last_vuln_date":32,"fetched_at":33},"4wp-style-switcher","4WP Style Switcher","\u003Ch4>Demo\u003C\u002Fh4>\n\u003Cp>\u003Cspan class=\"embed-youtube\" style=\"text-align:center; display: block;\">\u003Ciframe loading=\"lazy\" class=\"youtube-player\" width=\"750\" height=\"422\" src=\"https:\u002F\u002Fwww.youtube.com\u002Fembed\u002FJDGOF2B2zqQ?version=3&rel=1&showsearch=0&showinfo=1&iv_load_policy=1&fs=1&hl=en-US&autohide=2&wmode=transparent\" allowfullscreen=\"true\" style=\"border:0;\" sandbox=\"allow-scripts allow-same-origin allow-popups allow-presentation allow-popups-to-escape-sandbox\">\u003C\u002Fiframe>\u003C\u002Fspan>\u003C\u002Fp>\n\u003Cp>4WP Style Switcher reads \u003Cstrong>style variations\u003C\u002Fstrong> from the active block theme (\u003Ccode>theme.json\u003C\u002Fcode> and \u003Ccode>\u002Fstyles\u002F*.json\u003C\u002Fcode>).\u003C\u002Fp>\n\u003Cp>A plugin by \u003Ca href=\"https:\u002F\u002F4wp.dev\u002F\" rel=\"nofollow ugc\">4wp.dev\u003C\u002Fa>. \u003Cstrong>4WP\u003C\u002Fstrong> is our project brand; the letters “WP” appear only as part of that brand name, not as a reference to WordPress. This plugin is not affiliated with, endorsed, or sponsored by WordPress.\u003C\u002Fp>\n\u003Cp>Source code and releases: \u003Ca href=\"https:\u002F\u002Fgithub.com\u002F4wpdev\u002F4wp-style-switcher\" rel=\"nofollow ugc\">github.com\u002F4wpdev\u002F4wp-style-switcher\u003C\u002Fa>\u003C\u002Fp>\n\u003Ch4>Development\u003C\u002Fh4>\n\u003Cp>Human-readable PHP source is in the public GitHub repository above. The plugin ZIP includes \u003Ccode>src\u002F\u003C\u002Fcode> (PSR-4 autoload via \u003Ccode>src\u002FAutoload.php\u003C\u002Fcode> when \u003Ccode>vendor\u002F\u003C\u002Fcode> is absent). No npm build step — front-end scripts ship as plain JS in \u003Ccode>assets\u002F\u003C\u002Fcode>.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Live demo (WordPress Playground):\u003C\u002Fstrong> https:\u002F\u002Fplayground.wordpress.net\u002F?blueprint-url=https:\u002F\u002Fraw.githubusercontent.com\u002F4wpdev\u002F4wp-style-switcher\u002Fv1.0.0\u002F.wordpress-org\u002Fassets\u002Fblueprints\u002Fblueprint.json\u003C\u002Fp>\n\u003Cp>The demo site \u003Cstrong>Style Switcher\u003C\u002Fstrong> uses Twenty Twenty-Five: About, Morning, Afternoon, and Evening pages with per-page styles, A\u002FB light vs dark, a bottom-right visitor switcher, and Light\u002FDark in the header and footer menus.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Page style (editor)\u003C\u002Fstrong> — pick a variation for a page; optionally lock it so visitors cannot override it.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Frontend switcher\u003C\u002Fstrong> — visitors choose from allowed variations; the choice is stored in localStorage and synced to a cookie for server-side rendering.\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Light \u002F Dark (navigation block)\u003C\u002Fstrong> — add the Light\u002FDark block inside Navigation; map two variations (sun\u002Fmoon icons).\u003C\u002Fp>\n\u003Cp>\u003Cstrong>A\u002FB testing\u003C\u002Fstrong> — split new visitors between two variations; daily aggregate stats monitor the traffic split.\u003C\u002Fp>\n\u003Ch4>Privacy\u003C\u002Fh4>\n\u003Cp>When the visitor switcher or A\u002FB testing is enabled, the plugin may store the selected style variation in a browser cookie (\u003Ccode>forwp_ss_style\u003C\u002Fcode>) and in localStorage on the visitor device. No personal data is sent to third-party services. A\u002FB stats are aggregated counts stored in your WordPress database.\u003C\u002Fp>\n\u003Ch3>Blocks\u003C\u002Fh3>\n\u003Cp>This plugin provides 1 block.\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\n\u003Cp>\u003Cstrong>Light \u002F Dark\u003C\u002Fstrong> — menu toggle between two mapped theme style variations (sun\u002Fmoon icons).\u003Cstrong>Hooks (developers)\u003C\u002Fstrong>\u003C\u002Fp>\n\u003C\u002Fli>\n\u003Cli>\n\u003Cp>\u003Ccode>forwp_style_switcher_variations\u003C\u002Fcode> — filter theme variation list.\u003C\u002Fp>\n\u003C\u002Fli>\n\u003Cli>\u003Ccode>forwp_style_switcher_ab_assigned\u003C\u002Fcode> — after A\u002FB cohort assignment.\u003C\u002Fli>\n\u003Cli>\u003Ccode>forwp_style_switcher_analytics_track\u003C\u002Fcode> — analytics events.\u003C\u002Fli>\n\u003Cli>\u003Ccode>forwp_style_switcher_ab_assignment_enabled\u003C\u002Fcode> — filter A\u002FB assignment.\u003C\u002Fli>\n\u003C\u002Ful>\n","Apply theme.json style variations per page or let visitors switch styles on the frontend (FSE block themes).",218,"2026-06-14T14:34:00.000Z",[104,105,106,107,108],"block-theme","dark-mode","full-site-editing","style-variations","theme-json","https:\u002F\u002Fdownloads.wordpress.org\u002Fplugin\u002F4wp-style-switcher.1.0.1.zip"]