{"id":394389,"date":"2026-10-30T10:07:02","date_gmt":"2026-10-30T10:07:02","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/webninja-security\/"},"modified":"2026-10-30T10:06:47","modified_gmt":"2026-10-30T10:06:47","slug":"diamond-sierra-site-defense","status":"publish","type":"plugin","link":"https:\/\/wordpress.org\/plugins\/diamond-sierra-site-defense\/","author":14592377,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.0.0","stable_tag":"1.0.0","tested":"7.1.4","requires":"5.8","requires_php":"7.4","requires_plugins":null,"header_name":"Diamond Sierra Site Defense","header_author":"Teo Leonard","header_description":"Daily malware scan that checks your files against WordPress.org, plus a firewall, login protection, two-factor login and hardening. Catches ClickFix \/ fake CAPTCHA injections, web shells and must-use plugin backdoors.","assets_banners_color":"707785","last_updated":"2026-10-30 10:06:47","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/wordpress.org\/plugins\/diamond-sierra-site-defense\/","header_author_uri":"https:\/\/diamondsierra.com\/","rating":0,"author_block_rating":0,"active_installs":0,"downloads":69,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.0.0":{"tag":"1.0.0","author":"teoleonard","date":"2026-10-30 10:06:47","revision":3774848}},"upgrade_notice":[],"ratings":[],"assets_icons":{"icon-128x128.gif":{"filename":"icon-128x128.gif","revision":3774848,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.gif":{"filename":"icon-256x256.gif","revision":3774848,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3774848,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3774848,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["1.0.0"],"block_files":[],"assets_screenshots":{"screenshot-1.png":{"filename":"screenshot-1.png","revision":3774848,"resolution":"1","location":"assets","locale":"","width":1440,"height":1000},"screenshot-2.png":{"filename":"screenshot-2.png","revision":3774848,"resolution":"2","location":"assets","locale":"","width":1440,"height":1000},"screenshot-3.png":{"filename":"screenshot-3.png","revision":3774848,"resolution":"3","location":"assets","locale":"","width":1440,"height":1000},"screenshot-4.png":{"filename":"screenshot-4.png","revision":3774848,"resolution":"4","location":"assets","locale":"","width":1440,"height":1000},"screenshot-5.png":{"filename":"screenshot-5.png","revision":3774848,"resolution":"5","location":"assets","locale":"","width":1440,"height":1000},"screenshot-6.png":{"filename":"screenshot-6.png","revision":3774848,"resolution":"6","location":"assets","locale":"","width":1440,"height":1000}},"screenshots":{"1":"Dashboard: security score, open issues and one-click updates.","2":"Scan results with one-click fixes \u2013 restore the original file from WordPress.org, or quarantine it.","3":"Two-factor login on the user profile.","4":"Hardening: every protection explained, each with its own Apply button.","5":"Firewall: blocked IPs and the log.","6":"Settings."}},"plugin_section":[],"plugin_tags":[289693,1174,15756,55021,600],"plugin_category":[54],"plugin_contributors":[288166],"plugin_business_model":[],"class_list":["post-394389","plugin","type-plugin","status-publish","hentry","plugin_tags-clickfix","plugin_tags-firewall","plugin_tags-login-protection","plugin_tags-malware-scanner","plugin_tags-security","plugin_category-security-and-spam-protection","plugin_contributors-teoleonard","plugin_committers-teoleonard"],"banners":{"banner":"https:\/\/ps.w.org\/diamond-sierra-site-defense\/assets\/banner-772x250.png?rev=3774848","banner_2x":"https:\/\/ps.w.org\/diamond-sierra-site-defense\/assets\/banner-1544x500.png?rev=3774848","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/diamond-sierra-site-defense\/assets\/icon-128x128.gif?rev=3774848","icon_2x":"https:\/\/ps.w.org\/diamond-sierra-site-defense\/assets\/icon-256x256.gif?rev=3774848","generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/diamond-sierra-site-defense\/assets\/screenshot-1.png?rev=3774848","caption":"Dashboard: security score, open issues and one-click updates."},{"src":"https:\/\/ps.w.org\/diamond-sierra-site-defense\/assets\/screenshot-2.png?rev=3774848","caption":"Scan results with one-click fixes \u2013 restore the original file from WordPress.org, or quarantine it."},{"src":"https:\/\/ps.w.org\/diamond-sierra-site-defense\/assets\/screenshot-3.png?rev=3774848","caption":"Two-factor login on the user profile."},{"src":"https:\/\/ps.w.org\/diamond-sierra-site-defense\/assets\/screenshot-4.png?rev=3774848","caption":"Hardening: every protection explained, each with its own Apply button."},{"src":"https:\/\/ps.w.org\/diamond-sierra-site-defense\/assets\/screenshot-5.png?rev=3774848","caption":"Firewall: blocked IPs and the log."},{"src":"https:\/\/ps.w.org\/diamond-sierra-site-defense\/assets\/screenshot-6.png?rev=3774848","caption":"Settings."}],"raw_content":"<!--section=description-->\n<p>Diamond Sierra Site Defense checks your site once a day and tells you \u2013 in plain English \u2013 what is wrong and how to fix it. Everything below is free, with no account to sign up for, and no firewall rules held back for paying users.<\/p>\n\n<p><strong>Daily malware scan<\/strong><\/p>\n\n<ul>\n<li>Compares every WordPress core file against the official checksums from WordPress.org.<\/li>\n<li>Compares plugins and themes from the WordPress.org directory against their official copies, so tampered files (supply-chain attacks) are caught and verified files are skipped.<\/li>\n<li>Signature scan of themes, plugins, must-use plugins and uploads for web shells, obfuscated eval() backdoors, droppers, hidden-admin code and more.<\/li>\n<li>Detects ClickFix \/ fake CAPTCHA pages that trick visitors into running commands on their own computer, clipboard hijacking scripts, and EtherHiding loaders that pull code from BSC\/Polygon smart contracts.<\/li>\n<li>Detects injected remote <code>import()<\/code> calls in files and on the live homepage.<\/li>\n<li>Fetches your homepage like a visitor coming from Google, and again as Googlebot, to catch injections and SEO spam that hide from logged-in users.<\/li>\n<li>Tracks new and changed PHP files between scans.<\/li>\n<li>Risky plugin alerts with no setup and no API key: plugins removed from WordPress.org for a security issue, security updates waiting (found in the plugin's changelog) and plugins abandoned for over two years.<\/li>\n<li>Optional: checks whether Google Safe Browsing is warning visitors away from the site (off until you turn it on).<\/li>\n<li>Runs in small steps, so it works on shared hosting without timeouts.<\/li>\n<\/ul>\n\n<p><strong>Fixes<\/strong><\/p>\n\n<ul>\n<li>Restore a modified core, plugin or theme file with the verified original from WordPress.org.<\/li>\n<li>Quarantine suspicious files \u2013 restorable from the Quarantine tab.<\/li>\n<li>A verification scan runs automatically after a fix to confirm the malware is really gone.<\/li>\n<\/ul>\n\n<p><strong>Firewall<\/strong><\/p>\n\n<ul>\n<li>Blocks SQL injection, XSS, path traversal, remote file inclusion, command injection and PHP object injection.<\/li>\n<li>Blocks executable and disguised PHP uploads and SVGs with embedded scripts.<\/li>\n<li>Blocks vulnerability scanners and probes for .env, .git, wp-config backups and known shell names.<\/li>\n<li>Inspects JSON sent to the REST API and cookies, not just forms.<\/li>\n<li>Repeat offenders are blocked automatically.<\/li>\n<li>Log-only mode: see what would be blocked before anything is. New installs log for their first week, then start blocking on their own.<\/li>\n<\/ul>\n\n<p><strong>Login protection<\/strong><\/p>\n\n<ul>\n<li>Two-factor login with any authenticator app (Google Authenticator, Microsoft Authenticator, 1Password, Authy\u2026), with one-time backup codes.<\/li>\n<li>CAPTCHA on the login, registration, lost-password and comment forms: a built-in math question (no account needed), Cloudflare Turnstile, Google reCAPTCHA v2 or hCaptcha \u2013 with step-by-step instructions for getting the keys. A CAPTCHA outage or a wrong key never locks you out.<\/li>\n<li>Refuses passwords found in known data breaches (Have I Been Pwned, k-anonymity \u2013 the password never leaves your site).<\/li>\n<li>Custom login URL \u2013 move the login page off wp-login.php so bots can't find it.<\/li>\n<li>Login form honeypot that blocks automated login bots with nothing for real visitors to solve.<\/li>\n<li>Limits failed logins per IP and per account, with escalating lockouts. IPs an account has used before are never locked out, so nobody can lock you out of your own site.<\/li>\n<li>Trap usernames (like \"admin\") get bots locked out on the first try.<\/li>\n<li>Generic error messages that don't reveal whether a username exists.<\/li>\n<\/ul>\n\n<p><strong>Email alerts<\/strong><\/p>\n\n<ul>\n<li>Scan found a serious problem (and, if you like, an all-clear after every scan).<\/li>\n<li>An administrator signed in from a new IP.<\/li>\n<li>A new administrator account was created, or someone was promoted to administrator.<\/li>\n<li>Diamond Sierra Site Defense itself was deactivated \u2013 malware often switches security plugins off first.<\/li>\n<li>Plugin, theme and WordPress updates are waiting (only when a new one appears).<\/li>\n<li>An IP or an account was locked out after failed logins (optional, at most once an hour).<\/li>\n<\/ul>\n\n<p><strong>Hardening<\/strong><\/p>\n\n<ul>\n<li>Disable XML-RPC, the file editor, application passwords and username enumeration.<\/li>\n<li>Block PHP execution in uploads, sensitive files and directory listing.<\/li>\n<li>Security headers and hidden version numbers.<\/li>\n<li>A security score that explains every check, each with its own Apply button.<\/li>\n<\/ul>\n\n<p><strong>Also<\/strong><\/p>\n\n<ul>\n<li>Works alongside Wordfence, All-In-One Security, Solid Security, Sucuri, MalCare, Defender, Shield, Loginizer and others: Site Defense pauses its own firewall and login limits so the same visitor isn't blocked twice, and keeps scanning.<\/li>\n<li>Multisite: network-activate it to protect every site. The scanner and settings are for super admins only.<\/li>\n<li>Results in Tools \u2192 Site Health, and WP-CLI commands to get back in after a lockout (<code>wp site-defense unblock<\/code>, <code>reset-login-url<\/code>, <code>2fa-reset<\/code>).<\/li>\n<\/ul>\n\n<p><strong>Diamond Sierra Site Defense Pro<\/strong><\/p>\n\n<p>An optional add-on for people who clean hacked sites or look after many: one-click database cleanup, \"Fix automatically\", the post-hack recovery kit, protection against stolen login cookies, supply-chain and WooCommerce checkout watches, CVE matching, an alert centre with Slack\/Discord, an activity log and white-labelling. Everything listed above stays free. Details at <a href=\"https:\/\/diamondsierra.com\/diamond-sierra-site-defense-pro\/\">diamondsierra.com<\/a><\/p>\n\n<h3>External services<\/h3>\n\n<p>Diamond Sierra Site Defense connects to these services. Apart from the WordPress.org checks, each one is off until you turn it on.<\/p>\n\n<ul>\n<li><strong>WordPress.org<\/strong> (api.wordpress.org, downloads.wordpress.org, core.svn.wordpress.org, plugins.svn.wordpress.org, themes.svn.wordpress.org) \u2013 to download official checksums, theme packages and clean copies of files when you restore or repair them, and to read the public directory entry of each installed plugin (whether it was closed, when it was last updated, and the changelog of a waiting update). Only the names and versions of WordPress, your plugins and your themes are sent \u2013 the same information WordPress itself sends when it checks for updates. <a href=\"https:\/\/wordpress.org\/about\/privacy\/\">Terms<\/a><\/li>\n<li><strong>Have I Been Pwned \u2013 Pwned Passwords<\/strong> (api.pwnedpasswords.com) \u2013 only if you turn on \"Block breached passwords\". When a password is set, and once a day at login, the first 5 characters of the password's SHA-1 hash are sent; the password itself and the rest of the hash never leave your site. <a href=\"https:\/\/haveibeenpwned.com\/Privacy\">Terms and privacy<\/a><\/li>\n<li><strong>Cloudflare Turnstile<\/strong> (challenges.cloudflare.com) \u2013 only if you choose Turnstile as the CAPTCHA. Its script is loaded on the protected forms, and on submit the visitor's token and IP address are sent to Cloudflare to check them. <a href=\"https:\/\/www.cloudflare.com\/website-terms\/\">Terms<\/a> \u00b7 <a href=\"https:\/\/www.cloudflare.com\/privacypolicy\/\">Privacy<\/a><\/li>\n<li><strong>Google reCAPTCHA<\/strong> (www.google.com\/recaptcha) \u2013 only if you choose reCAPTCHA as the CAPTCHA. Its script is loaded on the protected forms, and on submit the visitor's token and IP address are sent to Google to check them. <a href=\"https:\/\/policies.google.com\/terms\">Terms<\/a> \u00b7 <a href=\"https:\/\/policies.google.com\/privacy\">Privacy<\/a><\/li>\n<li><strong>hCaptcha<\/strong> (js.hcaptcha.com, api.hcaptcha.com) \u2013 only if you choose hCaptcha as the CAPTCHA. Its script is loaded on the protected forms, and on submit the visitor's token and IP address are sent to hCaptcha to check them. <a href=\"https:\/\/www.hcaptcha.com\/terms\">Terms<\/a> \u00b7 <a href=\"https:\/\/www.hcaptcha.com\/privacy\">Privacy<\/a><\/li>\n<li><strong>Google Safe Browsing<\/strong> \u2013 only if you turn on the blocklist check under Settings \u2192 Malware scanner. Once per scan, your site's address is sent to Google to find out whether it is blocklisted. With an API key the request goes to safebrowsing.googleapis.com; without a key, and only if you also tick \"Check without a key\", it goes to transparencyreport.google.com. Nothing else is sent. <a href=\"https:\/\/policies.google.com\/terms\">Terms<\/a> \u00b7 <a href=\"https:\/\/policies.google.com\/privacy\">Privacy<\/a><\/li>\n<\/ul>\n\n<h3>Privacy<\/h3>\n\n<ul>\n<li>Everything Site Defense records stays in your own database. Nothing is sent to us. The only outside connections are the ones listed under External services.<\/li>\n<li>The firewall and login logs store the visitor's IP address, the address they requested and their browser's user agent, so you can see who was blocked and why. Log lines are deleted after 30 days, and the log never grows past 20,000 lines.<\/li>\n<li>Blocked IPs are kept until their block ends.<\/li>\n<li>For each user it keeps the last 10 IP addresses they logged in from (so nobody is locked out of their own account and new-IP alerts work), and, if they turn on two-factor login, the authenticator secret and hashed backup codes.<\/li>\n<li>The plugin sets no cookies of its own.<\/li>\n<li>Only administrators (super admins on multisite) can see the logs and settings.<\/li>\n<li>Deleting the plugin removes its tables, settings, user data and quarantined files.<\/li>\n<\/ul>\n\n<!--section=installation-->\n<ol>\n<li>Upload the plugin folder to <code>\/wp-content\/plugins\/<\/code> or install the zip from Plugins \u2192 Add New.<\/li>\n<li>Activate it.<\/li>\n<li>Go to <strong>Site Defense \u2192 Dashboard<\/strong> and click <strong>Scan now<\/strong> to build the first baseline.<\/li>\n<li>If your site is behind Cloudflare, set <strong>Settings \u2192 Visitor IP comes from<\/strong> to Cloudflare.<\/li>\n<\/ol>\n\n<p>The daily scan uses WP-Cron. On low-traffic sites, a real cron job calling <code>wp-cron.php<\/code> every 5 minutes makes sure it always runs on time.<\/p>\n\n<!--section=faq-->\n<dl>\n<dt id=\"do%20i%20need%20a%20google%20api%20key%20for%20the%20blocklist%20check%3F\"><h3>Do I need a Google API key for the blocklist check?<\/h3><\/dt>\n<dd><p>The blocklist check is off by default. To use it, turn on <strong>Settings \u2192 Malware scanner \u2192 Google blocklist check<\/strong> and either paste a free Safe Browsing API key from Google Cloud (recommended, it's Google's official API) or tick <strong>Check without a key<\/strong> to read the public status from Google's Transparency Report instead.<\/p><\/dd>\n<dt id=\"my%20site%20is%20behind%20a%20load%20balancer.%20which%20ip%20setting%20do%20i%20use%3F\"><h3>My site is behind a load balancer. Which IP setting do I use?<\/h3><\/dt>\n<dd><p>Pick <strong>X-Forwarded-For<\/strong>. Site Defense reads that header from the right and takes the first public address, so a visitor can't fake their IP by sending the header themselves. Behind Cloudflare, pick <strong>Cloudflare<\/strong> instead.<\/p><\/dd>\n<dt id=\"i%20use%20nginx%20%E2%80%93%20is%20the%20uploads%20protection%20active%3F\"><h3>I use nginx \u2013 is the uploads protection active?<\/h3><\/dt>\n<dd><p>nginx ignores .htaccess files. Add this to your server block:<\/p>\n\n<pre><code>location ~* \/wp-content\/uploads\/.*\\.php$ { deny all; }\n<\/code><\/pre><\/dd>\n<dt id=\"a%20finding%20is%20a%20false%20positive.%20what%20do%20i%20do%3F\"><h3>A finding is a false positive. What do I do?<\/h3><\/dt>\n<dd><p>Click <strong>Ignore<\/strong>. It stays hidden until that file or content changes.<\/p><\/dd>\n<dt id=\"can%20i%20use%20it%20with%20wordfence%20or%20all-in-one%20security%3F\"><h3>Can I use it with Wordfence or All-In-One Security?<\/h3><\/dt>\n<dd><p>Yes. Run only one firewall \u2013 by default Site Defense steps aside and lets the other plugin handle the firewall and login limits, while it keeps scanning and cleaning. If you'd rather use Site Defense's firewall, switch the other plugin's firewall off and untick \"Step aside for other security plugins\" in Settings.<\/p><\/dd>\n<dt id=\"i%20use%20jetpack%20%2F%20the%20mobile%20app\"><h3>I use Jetpack \/ the mobile app<\/h3><\/dt>\n<dd><p>Untick <strong>Disable XML-RPC<\/strong> in Settings.<\/p><\/dd>\n<dt id=\"i%20locked%20myself%20out%20by%20the%20firewall\"><h3>I locked myself out by the firewall<\/h3><\/dt>\n<dd><p>With WP-CLI: <code>wp site-defense unblock &lt;your-ip&gt;<\/code>. Without it, add <code>define( 'DSSD_DISABLE_FIREWALL', true );<\/code> to wp-config.php, log in, add your IP under <strong>Settings \u2192 Never block these IPs<\/strong>, then remove the line again.<\/p><\/dd>\n<dt id=\"i%20lost%20my%20phone%20and%20can%27t%20get%20past%20two-factor%20login\"><h3>I lost my phone and can't get past two-factor login<\/h3><\/dt>\n<dd><p>Type one of your backup codes instead of the 6-digit code. No backup codes? Ask another administrator to click <strong>Turn off<\/strong> under Two-factor login on your user profile, run <code>wp site-defense 2fa-reset &lt;your-user&gt;<\/code>, or add <code>define( 'DSSD_DISABLE_2FA', true );<\/code> to wp-config.php, log in, set it up again, then remove the line.<\/p><\/dd>\n<dt id=\"why%20does%20the%20firewall%20say%20%22would%20block%20%28log%20only%29%22%3F\"><h3>Why does the firewall say \"Would block (log only)\"?<\/h3><\/dt>\n<dd><p>New installs spend their first week in log-only mode so you can spot false alarms \u2013 a contact form or plugin that legitimately sends code-like text. Check the Firewall tab, then click <strong>Start blocking now<\/strong>, or wait and it starts on its own.<\/p><\/dd>\n<dt id=\"i%20set%20a%20custom%20login%20url%20and%20can%27t%20find%20it\"><h3>I set a custom login URL and can't find it<\/h3><\/dt>\n<dd><p>Add <code>define( 'DSSD_DISABLE_LOGIN_URL', true );<\/code> to wp-config.php. wp-login.php works normally again straight away. Log in, check or clear the URL under <strong>Settings \u2192 Login protection<\/strong>, then remove the line.<\/p><\/dd>\n<dt id=\"does%20the%20custom%20login%20url%20work%20on%20multisite%3F\"><h3>Does the custom login URL work on multisite?<\/h3><\/dt>\n<dd><p>No. On a network, renaming the login page would break sign-on across sites, so the feature turns itself off there automatically.<\/p><\/dd>\n<dt id=\"does%20site%20defense%20work%20on%20multisite%3F\"><h3>Does Site Defense work on multisite?<\/h3><\/dt>\n<dd><p>Yes \u2013 network-activate it. The firewall, login protection, two-factor login, Turnstile and the activity log protect every site. The scanner, cleanup tools and settings live in the main site's dashboard and are for super admins only, because they work on files shared by the whole network. Settings apply to all sites.<\/p><\/dd>\n<dt id=\"can%20i%20extend%20it%3F\"><h3>Can I extend it?<\/h3><\/dt>\n<dd><p>Yes. Filters and actions include <code>dssd_signatures<\/code>, <code>dssd_firewall_rules<\/code>, <code>dssd_scan_recurrence<\/code>, <code>dssd_settings_defaults<\/code>, <code>dssd_settings_sanitize<\/code>, <code>dssd_settings_cards<\/code>, <code>dssd_admin_tabs<\/code>, <code>dssd_render_tab_{tab}<\/code>, <code>dssd_brand_name<\/code>, <code>dssd_menu_label<\/code>, <code>dssd_show_branding<\/code>, <code>dssd_import_allowlist<\/code>, <code>dssd_allow_xmlrpc<\/code> and <code>dssd_loaded<\/code>.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>First release.<\/li>\n<\/ul>","raw_excerpt":"Daily malware scan, firewall, login protection and two-factor login. Checks files against WordPress.org and catches ClickFix fake-CAPTCHA injections.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/394389","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=394389"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/teoleonard"}],"wp:attachment":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=394389"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=394389"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=394389"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=394389"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=394389"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=394389"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}