{"id":308618,"date":"2026-06-15T03:44:48","date_gmt":"2026-06-15T03:44:48","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/rvs-database-doctor\/"},"modified":"2026-06-15T03:44:15","modified_gmt":"2026-06-15T03:44:15","slug":"rvs-database-doctor","status":"publish","type":"plugin","link":"https:\/\/wordpress.org\/plugins\/rvs-database-doctor\/","author":14365162,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"2.5.7","stable_tag":"2.5.7","tested":"7.0","requires":"6.2","requires_php":"7.4","requires_plugins":null,"header_name":"RVS Database Doctor","header_author":"rberet","header_description":"Safely analyze and optimize WordPress \/ WooCommerce databases with backups, restore, scheduled jobs, and an actionable health advisor.","assets_banners_color":"4998b6","last_updated":"2026-06-15 03:44:15","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/rberet.com\/wp-plugins\/rvs-database-doctor","header_author_uri":"https:\/\/rberet.com","rating":0,"author_block_rating":0,"active_installs":0,"downloads":27,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"2.5.7":{"tag":"2.5.7","author":"rberet","date":"2026-06-15 03:44:15"}},"upgrade_notice":{"2.4.5":"<p>Navigation redesign: grouped sidebar replaced with horizontal tabs so content uses full width. No data migration required; all bookmarks and <code>?tab=<\/code> URLs continue to work.<\/p>","2.4.4":"<p>Quality release: GitHub Actions CI (lint + PHPUnit on PHP 7.4-8.3) and an expanded test suite. No runtime behavior changes beyond promoting <code>format_eta()<\/code> to public.<\/p>","2.4.3":"<p>Performance: orphan-table analyzer caches the owner registry per-request and the per-plugin code scan as transients (12h, auto-invalidated by plugin updates). Drop-in upgrade, no migration required.<\/p>","2.4.2":"<p>Navigation refactor: flat horizontal tabs become a grouped sticky sidebar (Overview \/ Optimize \/ Safety \/ Operations \/ Configuration). All bookmarks and <code>?tab=<\/code> URLs continue to work. No data migration required.<\/p>","2.4.1":"<p>Introduces a design-token CSS system, an opt-in Dark mode for the plugin admin pages (Settings \u2192 Color theme), sticky table headers, and client-side sortable columns. No data migration required.<\/p>","2.4.0":"<p>UX-focused release: accessible toasts and confirm\/prompt modals, adaptive job polling, admin-bar running-jobs indicator, pause\/resume jobs, and ETA in the active jobs table. No data migration required.<\/p>","2.3.2":"<p>WordPress.org review compatibility release. Plugin prefixes were renamed to <code>rvsdado_<\/code> and destructive SQL now uses <code>$wpdb-&amp;gt;prepare()<\/code> with <code>%i<\/code> placeholders. Requires WordPress 6.2 or later.<\/p>","2.3.1":"<p>WordPress.org review compatibility release. CLI report output is now stored under uploads\/rvs-database-doctor\/.<\/p>","2.3.0":"<p>Guided cleanup wizard, scheduled health digest emails, QA scaffolding, release packaging helper, and scheduler timing improvements.<\/p>","2.2.0":"<p>Maintenance release with Plugin Check compatibility fixes and version metadata updates.<\/p>","2.1.0":"<p>Autoload pagination, backup manifests, full database restore, backup validation, CLI restore. Backups created before 2.1.0 lack manifests and cannot be restored - create a new backup after upgrading.<\/p>","2.0.0":"<p>Major upgrade: new job runner and background queue, dynamic batch size replaces fixed batch 50, added snapshots, advisor v2, scheduler, full database backup, and bulk actions. Compatible with existing data.<\/p>"},"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3572373,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3572373,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256}},"assets_banners":{"banner-2172x724.png":{"filename":"banner-2172x724.png","revision":3572373,"resolution":"2172x724","location":"assets","locale":"","width":2172,"height":724},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3572373,"resolution":"772x250","location":"assets","locale":"","width":1500,"height":486}},"assets_blueprints":{},"all_blocks":[],"tagged_versions":["2.5.7"],"block_files":[],"assets_screenshots":[],"screenshots":[]},"plugin_section":[262246],"plugin_tags":[151,3786,153,187,247],"plugin_category":[52,54,59],"plugin_contributors":[242937],"plugin_business_model":[],"class_list":["post-308618","plugin","type-plugin","status-publish","hentry","plugin_section-dashboard-widgets","plugin_tags-backup","plugin_tags-cleanup","plugin_tags-database","plugin_tags-optimization","plugin_tags-performance","plugin_category-performance","plugin_category-security-and-spam-protection","plugin_category-utilities-and-tools","plugin_contributors-rberet","plugin_committers-rberet"],"banners":{"banner":"https:\/\/ps.w.org\/rvs-database-doctor\/assets\/banner-772x250.png?rev=3572373","banner_2x":false,"banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":false,"icon":"https:\/\/ps.w.org\/rvs-database-doctor\/assets\/icon-128x128.png?rev=3572373","icon_2x":"https:\/\/ps.w.org\/rvs-database-doctor\/assets\/icon-256x256.png?rev=3572373","generated":false},"screenshots":[],"raw_content":"<!--section=description-->\n<p><strong>RVS Database Doctor<\/strong> is a professional database administration tool. It gives you insight into the current state, safely cleans and optimizes, and shows exactly how much you saved - with full support for large databases.<\/p>\n\n<h4>Key features<\/h4>\n\n<ul>\n<li><strong>Dashboard<\/strong> with health score and one-click <strong>Optimize Now<\/strong>.<\/li>\n<li><strong>Time-based job runner<\/strong> (default batch 1000, auto-adapts to <code>max_execution_time<\/code>) - works smoothly on databases with 100k+ rows.<\/li>\n<li><strong>Background queue<\/strong> (WP-Cron drain every minute, Action Scheduler when available) - you can close the tab and the job continues.<\/li>\n<li><strong>Before \/ After snapshots<\/strong> with SVG charts and per-table delta (no external dependencies).<\/li>\n<li><strong>Guided Safe Cleanup Wizard<\/strong> with recommended selections, CARE confirmations, before\/after snapshots, and cleanup result deltas.<\/li>\n<li><strong>Smart Advisor v2<\/strong> - health score (0-100, grade A-F), actionable tips, and EXPLAIN query-plan hints for slow queries.<\/li>\n<li><strong>Bulk actions<\/strong> for Table Sizes, Autoload Options, Index Analysis, and Cleanup tabs.<\/li>\n<li><strong>Manual full database backup<\/strong> with a user-selectable table list and <strong>manifest.json<\/strong> metadata. Choose PHP chunked dump (works anywhere) or native <strong>mysqldump<\/strong> (fast).<\/li>\n<li><strong>Full database restore<\/strong> from plugin-created backups - automatic pre-restore backup, streaming SQL import, progress tracking, and mandatory confirmation (type RESTORE).<\/li>\n<li><strong>Micro-backup of affected tables<\/strong> before destructive operations (gzip when available, retention by days and count).<\/li>\n<li><strong>Scheduled optimizations<\/strong> - hourly \/ daily \/ weekly \/ monthly.<\/li>\n<li><strong>Scheduled health digest emails<\/strong> - daily, weekly, or monthly summaries sent to the configured notification email.<\/li>\n<li><strong>MyISAM \u2192 InnoDB<\/strong> conversion (batched with progress bar).<\/li>\n<li><strong>Autoload analysis<\/strong> with severity levels, segmentation, search, filter, pagination, and bulk update - no longer limited to 50 options.<\/li>\n<li><strong>Index analysis<\/strong> - missing expected, composite suggestions, sys redundant \/ unused.<\/li>\n<li><strong>WooCommerce \/ HPOS<\/strong> detection and specific suggestions.<\/li>\n<li><strong>Cleanup<\/strong>: expired transients, revisions, auto-drafts, old trash, spam \/ trash comments, orphan postmeta \/ commentmeta \/ term_relationships, expired WC sessions, Action Scheduler old actions \/ logs, duplicate postmeta, stale session tokens, <code>_edit_lock<\/code> \/ <code>_edit_last<\/code>.<\/li>\n<li><strong>Actions log<\/strong> - every attempt is recorded (success \/ error \/ dry-run).<\/li>\n<li><strong>WP-CLI<\/strong> commands for every action including <code>backup create --all<\/code>, <code>backup validate &lt;uid&gt;<\/code>, and <code>backup restore &lt;uid&gt; --confirm=RESTORE<\/code> (<code>wp rvs-database-doctor \u2026<\/code>; <code>wp rvs-db-doctor \u2026<\/code> is also supported).<\/li>\n<\/ul>\n\n<h4>Safety rules<\/h4>\n\n<ul>\n<li>All destructive actions require the <code>manage_options<\/code> capability + nonce + explicit confirmation checkbox.<\/li>\n<li>Table names are validated against <code>information_schema<\/code> before any <code>ALTER \/ ANALYZE \/ OPTIMIZE \/ DELETE<\/code>.<\/li>\n<li>Auto-backup of affected tables before destructive operations (enabled by default).<\/li>\n<li>The plugin never deletes anything automatically; <strong>Optimize Now<\/strong> runs safe categories only by default.<\/li>\n<\/ul>\n\n<!--section=installation-->\n<ol>\n<li>Upload the <code>rvs-database-doctor<\/code> folder to <code>wp-content\/plugins\/<\/code>.<\/li>\n<li>Activate the plugin from the Plugins screen.<\/li>\n<li>Open <strong>Tools \u2192 RVS Database Doctor<\/strong> and start on the Dashboard.<\/li>\n<li>(Optional) Visit the <strong>Settings<\/strong> tab to configure batch size, time budget, and retention.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"does%20the%20plugin%20delete%20anything%20automatically%3F\"><h3>Does the plugin delete anything automatically?<\/h3><\/dt>\n<dd><p>No. Every action requires an explicit click and confirmation. Schedules (if you create any) only run the job type you selected.<\/p><\/dd>\n<dt id=\"does%20it%20require%20woocommerce%3F\"><h3>Does it require WooCommerce?<\/h3><\/dt>\n<dd><p>No. WooCommerce is optional. The plugin auto-detects it and surfaces WC-specific options (HPOS, sessions, Action Scheduler) when available.<\/p><\/dd>\n<dt id=\"what%20if%20i%20have%20100k%2B%20rows%20to%20clean%20up%3F\"><h3>What if I have 100k+ rows to clean up?<\/h3><\/dt>\n<dd><p>The plugin uses a time-based runner: each AJAX request processes batches until the time budget (~25s by default) is exhausted, then the browser (or WP-Cron in background mode) triggers the next tick. You can raise the batch size in Settings (up to 50000) or run the job in the background and close the tab.<\/p><\/dd>\n<dt id=\"is%20this%20a%20replacement%20for%20updraftplus%20%2F%20backupbuddy%3F\"><h3>Is this a replacement for UpdraftPlus \/ BackupBuddy?<\/h3><\/dt>\n<dd><p>Partly. RVS Database Doctor performs <strong>database-only<\/strong> backups: a micro-backup before destructive actions and a manual full database backup (you pick the tables). For complete site backups including files \/ media, keep using a dedicated backup plugin.<\/p><\/dd>\n<dt id=\"can%20i%20use%20mysqldump%3F\"><h3>Can I use mysqldump?<\/h3><\/dt>\n<dd><p>Yes, if your host allows <code>shell_exec()<\/code> and provides the <code>mysqldump<\/code> binary. The Backups tab detects availability and lets you pick the method per backup.<\/p><\/dd>\n<dt id=\"multisite%3F\"><h3>Multisite?<\/h3><\/dt>\n<dd><p>The plugin works at the site level (not network-aware in 2.0). Activate per-site.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>2.5.7<\/h4>\n\n<ul>\n<li>Removed WordPress.org directory assets from the plugin package.<\/li>\n<li>Hardened database queries by preparing table identifiers and values with <code>$wpdb-&gt;prepare()<\/code> placeholders.<\/li>\n<li>Replaced dynamic collation repair SQL with a prepared table conversion query.<\/li>\n<li>Fixed plugin-cache cleanup placeholder generation to avoid PHPCS replacement-count warnings.<\/li>\n<\/ul>\n\n<h4>2.5.6<\/h4>\n\n<ul>\n<li>Fixed duplicate changelog entries for version 2.4.5.<\/li>\n<\/ul>\n\n<h4>2.5.5<\/h4>\n\n<ul>\n<li>Fixed stale cache issue where MyISAM tables continued to be displayed in the Table Engines tab after a successful conversion.<\/li>\n<\/ul>\n\n<h4>2.5.4<\/h4>\n\n<ul>\n<li>Fixed selector mismatch in MyISAM to InnoDB conversion where checked tables were not detected.<\/li>\n<li>Resolved Action Scheduler database bloat by cleaning legacy hooks and optimizing queries.<\/li>\n<li>Fixed false positive unused taxonomies candidates list.<\/li>\n<\/ul>\n\n<h4>2.4.5<\/h4>\n\n<ul>\n<li><strong>Horizontal tabs navigation<\/strong> replaces the grouped sidebar so the main content area uses full width. Tabs are grouped with labels (Overview, Optimize, Safety, Operations, Configuration) and use design tokens for consistent styling.<\/li>\n<li>Active tab has a top border that visually merges with the content area; hover\/focus states use primary color with keyboard-visible focus ring.<\/li>\n<li>Mobile select fallback remains unchanged for narrow viewports (\u2264960px). All <code>?tab=<\/code> URLs continue to work unchanged.<\/li>\n<\/ul>\n\n<h4>2.4.4<\/h4>\n\n<ul>\n<li><strong>GitHub Actions CI<\/strong>: a new <code>.github\/workflows\/ci.yml<\/code> lints every PHP file under PHP 7.4 \/ 8.0 \/ 8.1 \/ 8.2 \/ 8.3 and runs the PHPUnit suite on every push and pull request. Tagged pushes (<code>v*<\/code>) also stage a release zip artifact.<\/li>\n<li><strong>Expanded PHPUnit suite<\/strong>: three new test files covering ETA formatting (5 cases), the grouped sidebar navigation contract (legacy <code>?tab=<\/code> URLs and <code>render_tab_*<\/code> method coverage), and additional <code>RVSDADO_Actions::validate_job_params()<\/code> branches (uid sanitizer, mode default, unknown type, runner-vs-admin context, table list filtering).<\/li>\n<li><code>RVSDADO_Admin_Helpers_Trait::format_eta()<\/code> promoted to public so external callers (CLI, REST, tests) can reuse the same formatter used in the active jobs table.<\/li>\n<\/ul>\n\n<h4>2.4.3<\/h4>\n\n<ul>\n<li><strong>Orphan table analyzer is dramatically faster on busy sites<\/strong>: the plugin owner registry is now cached in-memory for the duration of the request, and the per-plugin code scan (up to 80 PHP files per plugin) is cached as a transient keyed by the plugin's directory <code>mtime<\/code> so it self-invalidates on plugin updates. First detection pass is unchanged; subsequent passes within 12 hours are near-instant.<\/li>\n<\/ul>\n\n<h4>2.4.2<\/h4>\n\n<ul>\n<li><strong>Grouped sidebar navigation<\/strong> replaces the flat horizontal tab strip: 5 logical groups (Overview, Optimize, Safety, Operations, Configuration). All <code>?tab=<\/code> URLs from previous versions continue to work unchanged.<\/li>\n<li>Sticky sidebar that scrolls independently, plus a breadcrumb trail at the top of every section.<\/li>\n<li>Narrow viewports (\u2264960px) get a responsive <code>&lt;select&gt;<\/code> group fallback instead of the sidebar.<\/li>\n<li><code>aria-current=\"page\"<\/code>, <code>aria-label<\/code>, and focus-visible outlines for full keyboard \/ screen-reader navigation.<\/li>\n<\/ul>\n\n<h4>2.4.1<\/h4>\n\n<ul>\n<li>Added a design-token CSS system (colors, spacing, radius, shadows, typography) as the single source of truth for all admin styling.<\/li>\n<li>Added a <strong>Dark mode<\/strong> for the plugin admin pages with Auto (follow OS), Light, and Dark options under Settings \u2192 Color theme. The theme attribute is applied before paint to avoid flash of unstyled content.<\/li>\n<li>Refined component theming for cards, panels, intro boxes, wizard, help boxes, and the v2 accessible modal under dark mode.<\/li>\n<li><strong>Sticky table headers<\/strong> on all plugin <code>.widefat<\/code> tables -column titles stay visible while scrolling large datasets.<\/li>\n<li><strong>Sortable columns<\/strong> with click or keyboard (Enter\/Space) toggling asc\/desc; numeric \/ date \/ text is auto-detected; tables driven by background polling opt out automatically.<\/li>\n<\/ul>\n\n<h4>2.4.0<\/h4>\n\n<ul>\n<li>Accessible toast notifications replace blocking <code>alert()<\/code> calls (aria-live, dismissible, auto-timeout).<\/li>\n<li>Accessible confirm\/prompt modal v2 with focus trap, Escape-to-close, and tip-to-confirm validation (RESTORE \/ DROP \/ QUARANTINE \/ DELETE).<\/li>\n<li>Adaptive job polling: respects Page Visibility, throttles when idle, kicks back to fast cadence when work appears.<\/li>\n<li>New running-jobs indicator in the WordPress admin bar (visible on every wp-admin page, capability-gated).<\/li>\n<li>Pause \/ Resume jobs from the active jobs table (new <code>pause()<\/code> \/ <code>resume()<\/code> runner methods and AJAX endpoints).<\/li>\n<li>ETA shown next to each active job's processed\/total count, derived from runner throughput.<\/li>\n<\/ul>\n\n<h4>2.3.2<\/h4>\n\n<ul>\n<li>Renamed internal prefixes to <code>rvsdado_<\/code> \/ <code>RVSDADO_<\/code> across classes, constants, options, transients, hooks, AJAX actions, and asset handles for stronger isolation.<\/li>\n<li>Stored data and transient keys now use the unique <code>rvsdado_<\/code> prefix in explicit string literals.<\/li>\n<li>Migrated destructive DDL paths (DROP TABLE \/ RENAME TABLE) and other identifier-bound SQL to <code>$wpdb-&gt;prepare()<\/code> with the <code>%i<\/code> placeholder.<\/li>\n<li>Added a stricter whitelist that requires tables to be currently detected as orphans (or sourced from the quarantine registry) before any destructive DDL runs.<\/li>\n<li>Replaced the dynamic <code>IN ({$ids_csv})<\/code> SQL clause with prepared <code>%d<\/code> placeholders.<\/li>\n<li>Removed the residual <code>ini_set('display_errors', '0')<\/code> call from the AJAX core.<\/li>\n<li>Raised the minimum WordPress requirement to 6.2 to support the <code>%i<\/code> identifier placeholder.<\/li>\n<\/ul>\n\n<h4>2.3.1<\/h4>\n\n<ul>\n<li>Addressed WordPress.org pre-review feedback for transient key naming, CLI report output storage, and AJAX output buffering.<\/li>\n<li>Restricted WP-CLI report file output to the plugin's uploads directory.<\/li>\n<\/ul>\n\n<h4>2.3.0<\/h4>\n\n<ul>\n<li>Added the Guided Safe Cleanup Wizard with recommended selections, CARE confirmations, before\/after snapshots, live runner progress, and cleanup result deltas.<\/li>\n<li>Added scheduled health digest emails with daily, weekly, or monthly frequency.<\/li>\n<li>Added lightweight QA scaffolding, a manual QA checklist, and a release build helper that excludes QA\/dev-only artifacts.<\/li>\n<li>Fixed Action Scheduler drain registration timing and avoided early translation loading for the custom cron schedule label.<\/li>\n<\/ul>\n\n<h4>2.2.0<\/h4>\n\n<ul>\n<li>Updated plugin metadata and release references for version 2.2.0.<\/li>\n<li>Addressed Plugin Check findings for translator comments and prepared SQL scanner warnings in database cleanup, runner, scheduler, and backup checks.<\/li>\n<\/ul>\n\n<h4>2.1.0<\/h4>\n\n<ul>\n<li>Autoload tab: full pagination, search, filter (autoloaded\/not\/large\/review\/watch), sort, and segmentation - no longer limited to 50 options.<\/li>\n<li>Backup manifests: every new backup writes a <code>manifest.json<\/code> with method, DB name, WP prefix, tables, files, gzip flag, and version.<\/li>\n<li>Full database restore: restore plugin-created backups from UI or CLI (<code>wp rvs-database-doctor backup restore &lt;uid&gt; --confirm=RESTORE<\/code>). Automatic pre-restore backup, streaming SQL import, blocked dangerous statements, DB\/prefix compatibility checks.<\/li>\n<li>Backup list now shows method, table count, and restore eligibility.<\/li>\n<li>WP-CLI: added <code>backup validate &lt;uid&gt;<\/code> and <code>backup restore &lt;uid&gt; --confirm=RESTORE<\/code>; <code>autoload<\/code> now supports <code>--per-page<\/code>, <code>--page<\/code>, <code>--filter<\/code>, <code>--search<\/code>, <code>--orderby<\/code>, <code>--order<\/code>.<\/li>\n<\/ul>\n\n<h4>2.0.0<\/h4>\n\n<ul>\n<li>Time-based job runner with dynamic batch size (default 1000).<\/li>\n<li>Background queue (WP-Cron drain \/ Action Scheduler support).<\/li>\n<li>Before \/ After snapshots + SVG charts.<\/li>\n<li>Smart Advisor v2 with EXPLAIN hints.<\/li>\n<li>Bulk actions for Table Sizes, Autoload, Indexes and Cleanup.<\/li>\n<li>Manual full database backup (PHP dump or mysqldump), user-selectable tables.<\/li>\n<li>Micro-backup of affected tables with retention.<\/li>\n<li>Scheduled optimizations.<\/li>\n<li>One-click Optimize Now.<\/li>\n<li>Refactored UI: Dashboard as the default tab, Analytics, Schedules, Backups.<\/li>\n<li>Refactored WP-CLI with job \/ snapshot \/ backup subcommands.<\/li>\n<li>Fully translated to English (text domain <code>rvs-database-doctor<\/code>).<\/li>\n<\/ul>\n\n<h4>1.0.0<\/h4>\n\n<ul>\n<li>Initial release.<\/li>\n<\/ul>","raw_excerpt":"Safely analyze and optimize your WordPress and WooCommerce database with backups, restore, schedules, and a built-in health advisor.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/308618","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=308618"}],"author":[{"embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/rberet"}],"wp:attachment":[{"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=308618"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=308618"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=308618"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=308618"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=308618"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=308618"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}