{"id":299441,"date":"2026-07-21T22:26:31","date_gmt":"2026-07-21T22:26:31","guid":{"rendered":"https:\/\/wordpress.org\/plugins\/presence-api\/"},"modified":"2026-08-22T01:46:26","modified_gmt":"2026-08-22T01:46:26","slug":"presence-api","status":"publish","type":"plugin","link":"https:\/\/es-ar.wordpress.org\/plugins\/presence-api\/","author":5911429,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"0.1.24","stable_tag":"0.1.24","tested":"7.0.4","requires":"7.0","requires_php":"7.4","requires_plugins":null,"header_name":"Presence API","header_author":"WordPress Core Team","header_description":"System-wide presence and awareness for WordPress.","assets_banners_color":"3e4347","last_updated":"2026-08-22 01:46:26","external_support_url":"","external_repository_url":"https:\/\/github.com\/WordPress\/presence-api","donate_link":"","header_plugin_uri":"","header_author_uri":"https:\/\/make.wordpress.org\/core\/","rating":0,"author_block_rating":0,"active_installs":0,"downloads":1259,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","changelog"],"tags":{"0.1.10":{"tag":"0.1.10","author":"JoeFusco","date":"2026-07-30 22:34:55"},"0.1.11":{"tag":"0.1.11","author":"JoeFusco","date":"2026-07-31 19:03:50"},"0.1.12":{"tag":"0.1.12","author":"JoeFusco","date":"2026-08-07 15:35:41"},"0.1.13":{"tag":"0.1.13","author":"JoeFusco","date":"2026-08-07 18:58:00"},"0.1.14":{"tag":"0.1.14","author":"JoeFusco","date":"2026-08-08 05:35:27"},"0.1.15":{"tag":"0.1.15","author":"JoeFusco","date":"2026-08-08 19:10:37"},"0.1.16":{"tag":"0.1.16","author":"JoeFusco","date":"2026-08-08 20:25:29"},"0.1.17":{"tag":"0.1.17","author":"JoeFusco","date":"2026-08-10 12:10:03"},"0.1.18":{"tag":"0.1.18","author":"JoeFusco","date":"2026-08-12 12:29:51"},"0.1.19":{"tag":"0.1.19","author":"JoeFusco","date":"2026-08-14 14:07:36"},"0.1.20":{"tag":"0.1.20","author":"JoeFusco","date":"2026-08-14 22:57:44"},"0.1.21":{"tag":"0.1.21","author":"JoeFusco","date":"2026-08-16 17:02:52"},"0.1.22":{"tag":"0.1.22","author":"JoeFusco","date":"2026-08-16 21:36:43"},"0.1.23":{"tag":"0.1.23","author":"JoeFusco","date":"2026-08-18 16:54:57"},"0.1.24":{"tag":"0.1.24","author":"JoeFusco","date":"2026-08-22 01:46:26"},"0.1.4":{"tag":"0.1.4","author":"JoeFusco","date":"2026-07-21 22:25:35"},"0.1.5":{"tag":"0.1.5","author":"JoeFusco","date":"2026-07-23 14:20:33"},"0.1.6":{"tag":"0.1.6","author":"JoeFusco","date":"2026-07-23 15:10:00"},"0.1.7":{"tag":"0.1.7","author":"JoeFusco","date":"2026-07-24 03:30:50"},"0.1.8":{"tag":"0.1.8","author":"JoeFusco","date":"2026-07-24 17:51:52"},"0.1.9":{"tag":"0.1.9","author":"JoeFusco","date":"2026-07-26 15:23:25"}},"upgrade_notice":[],"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3659805,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3659805,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256},"icon.svg":{"filename":"icon.svg","revision":3659805,"resolution":false,"location":"assets","locale":false}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3620136,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3620136,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{"blueprint.json":{"filename":"blueprint.json","revision":3659805,"resolution":false,"location":"assets","locale":"","contents":"{\"$schema\":\"https:\\\/\\\/playground.wordpress.net\\\/blueprint-schema.json\",\"landingPage\":\"\\\/wp-admin\\\/index.php\",\"preferredVersions\":{\"php\":\"latest\",\"wp\":\"latest\"},\"login\":true,\"features\":{\"networking\":true},\"steps\":[{\"step\":\"installPlugin\",\"pluginData\":{\"resource\":\"wordpress.org\\\/plugins\",\"slug\":\"presence-api\"},\"options\":{\"activate\":true}},{\"step\":\"writeFile\",\"path\":\"\\\/wordpress\\\/wp-content\\\/plugins\\\/presence-api\\\/demo-seeder.php\",\"data\":{\"resource\":\"url\",\"url\":\"https:\\\/\\\/raw.githubusercontent.com\\\/WordPress\\\/presence-api\\\/v0.1.24\\\/tests\\\/e2e\\\/demo-seeder.php\"}},{\"step\":\"writeFile\",\"path\":\"\\\/wordpress\\\/wp-content\\\/mu-plugins\\\/screen-stale-demo-helper.php\",\"data\":{\"resource\":\"url\",\"url\":\"https:\\\/\\\/raw.githubusercontent.com\\\/WordPress\\\/presence-api\\\/v0.1.24\\\/tests\\\/e2e\\\/screen-stale-demo-helper.php\"}},{\"step\":\"runPHP\",\"code\":\"<?php require '\\\/wordpress\\\/wp-load.php'; require '\\\/wordpress\\\/wp-content\\\/plugins\\\/presence-api\\\/demo-seeder.php'; wp_presence_demo_seed( 5 ); update_user_meta( 1, 'show_welcome_panel', 0 ); update_user_meta( 1, 'meta-box-order_dashboard', array( 'normal' => 'presence_whos_online,presence_active_posts,dashboard_right_now,dashboard_activity', 'side' => 'dashboard_quick_press,dashboard_primary' ) ); ?>\"}]}"}},"all_blocks":[],"tagged_versions":["0.1.10","0.1.11","0.1.12","0.1.13","0.1.14","0.1.15","0.1.16","0.1.17","0.1.18","0.1.19","0.1.20","0.1.21","0.1.22","0.1.23","0.1.24","0.1.4","0.1.5","0.1.6","0.1.7","0.1.8","0.1.9"],"block_files":[],"assets_screenshots":[],"screenshots":[]},"plugin_section":[262246],"plugin_tags":[13780,5901,28310,866],"plugin_category":[],"plugin_contributors":[274871,273209,275765,271448,273072,222961,81359,274823],"plugin_business_model":[216239],"class_list":["post-299441","plugin","type-plugin","status-publish","hentry","plugin_section-dashboard-widgets","plugin_tags-awareness","plugin_tags-heartbeat","plugin_tags-presence","plugin_tags-real-time","plugin_contributors-aldorza","plugin_contributors-ashishjii","plugin_contributors-bejignesh","plugin_contributors-iamchitti","plugin_contributors-intenzi","plugin_contributors-iqbal1hossain","plugin_contributors-joefusco","plugin_contributors-wp24horas","plugin_business_model-community","plugin_committers-joefusco","plugin_committers-wordpressdotorg"],"banners":{"banner":"https:\/\/ps.w.org\/presence-api\/assets\/banner-772x250.png?rev=3620136","banner_2x":"https:\/\/ps.w.org\/presence-api\/assets\/banner-1544x500.png?rev=3620136","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":"https:\/\/ps.w.org\/presence-api\/assets\/icon.svg?rev=3659805","icon":"https:\/\/ps.w.org\/presence-api\/assets\/icon.svg?rev=3659805","icon_2x":false,"generated":false},"screenshots":[],"raw_content":"<!--section=description-->\n<p>Presence API gives WordPress a system-wide awareness layer. It tracks which users are logged in, which admin screen they are on, and which posts they are editing.<\/p>\n\n<p>Data flows through the Heartbeat API and is stored in a dedicated <code>wp_presence<\/code> table with a 60-second TTL. No writes to <code>wp_postmeta<\/code> means no post-cache invalidation on every heartbeat.<\/p>\n\n<p><a href=\"https:\/\/playground.wordpress.net\/?blueprint-url=https:\/\/raw.githubusercontent.com\/WordPress\/presence-api\/main\/blueprint.json\">Test in WordPress Playground<\/a> without installing anything.<\/p>\n\n<h4>Features<\/h4>\n\n<ul>\n<li>Who's Online dashboard widget with idle detection<\/li>\n<li>Active Posts dashboard widget grouped by post<\/li>\n<li>Admin bar indicator showing other users on the same page<\/li>\n<li>Editors column in the post list<\/li>\n<li>Online filter in the Users list<\/li>\n<\/ul>\n\n<h4>For Developers<\/h4>\n\n<p>PHP functions, REST endpoints, WP-CLI commands, filters, and room conventions are documented in the <a href=\"https:\/\/github.com\/WordPress\/presence-api\">GitHub repository<\/a>.<\/p>\n\n<h4>Background<\/h4>\n\n<p>An experimental feature plugin sponsored by the WordPress Core team, exploring what system-wide presence could look like for a future WordPress release. Follow development on <a href=\"https:\/\/make.wordpress.org\/core\/\">make.wordpress.org\/core<\/a> with the tag <code>#presence-api<\/code>.<\/p>\n\n<!--section=installation-->\n<ol>\n<li>In your WordPress admin, go to <strong>Plugins \u2192 Add New Plugin<\/strong> and search for \"Presence API\", then click <strong>Install Now<\/strong>.<\/li>\n<li>Activate through the <strong>Plugins<\/strong> menu.<\/li>\n<\/ol>\n\n<p>Or install manually:<\/p>\n\n<ol>\n<li>Download the zip and upload the <code>presence-api<\/code> folder to <code>\/wp-content\/plugins\/<\/code>.<\/li>\n<li>Activate through the <strong>Plugins<\/strong> menu.<\/li>\n<\/ol>\n\n<p>Or <a href=\"https:\/\/playground.wordpress.net\/?blueprint-url=https:\/\/raw.githubusercontent.com\/WordPress\/presence-api\/main\/blueprint.json\">try it in WordPress Playground<\/a> without installing anything.<\/p>\n\n<!--section=changelog-->\n<h4>0.1.24<\/h4>\n\n<ul>\n<li>Add idle backoff config for heartbeat presence ping.<\/li>\n<li>Back off heartbeat polling interval for idle rooms.<\/li>\n<li>Coalesce presence polling across tabs of the same user.<\/li>\n<\/ul>\n\n<h4>0.1.23<\/h4>\n\n<ul>\n<li>Demo helper now saves post to bump revision (<a href=\"https:\/\/github.com\/WordPress\/presence-api\/commit\/b397845145e71fcdbeac79e4e1b092f6adcdbd31\">b397845<\/a>), closes <a href=\"https:\/\/github.com\/WordPress\/presence-api\/issues\/287\">#287<\/a>.<\/li>\n<li>Cap heartbeat payload to visible rows only (<a href=\"https:\/\/github.com\/WordPress\/presence-api\/commit\/e7739aced270df1ca462a491af56286a4b255f47\">e7739ac<\/a>), closes <a href=\"https:\/\/github.com\/WordPress\/presence-api\/issues\/291\">#291<\/a>.<\/li>\n<li>Paginate rooms before user hydration (<a href=\"https:\/\/github.com\/WordPress\/presence-api\/commit\/6929addba615aa57c9e69ba09ef6611fd75028bb\">6929add<\/a>), closes <a href=\"https:\/\/github.com\/WordPress\/presence-api\/issues\/285\">#285<\/a>.<\/li>\n<\/ul>\n\n<h4>0.1.22<\/h4>\n\n<ul>\n<li>Add usePresenceUsers React hook.<\/li>\n<li>Prevent unnecessary heartbeat re-subscription on param changes.<\/li>\n<li>Resolve ref-in-render and stale closure issues.<\/li>\n<\/ul>\n\n<h4>0.1.21<\/h4>\n\n<ul>\n<li>Add RTC collaboration hooks and server authority.<\/li>\n<li>Eliminate race condition in timestamp test.<\/li>\n<li>Restore admin bar contrast in Light scheme.<\/li>\n<li>Set page parameter in REST controller tests.<\/li>\n<li>Set per_page parameter in REST controller tests.<\/li>\n<li>Skip Who's Online payload when room state is unchanged.<\/li>\n<\/ul>\n\n<h4>0.1.20<\/h4>\n\n<ul>\n<li>Correct query cost and timezone bug in post revision lookup.<\/li>\n<li>Count people rather than rows in the Active Posts widget (<a href=\"https:\/\/github.com\/WordPress\/presence-api\/commit\/da77dfb262e1b74d23defea4cb07905387abb5cf\">da77dfb<\/a>), closes <a href=\"https:\/\/github.com\/WordPress\/presence-api\/issues\/134\">#134<\/a>.<\/li>\n<li>Guard the presence table upgrade with a provisioning lock.<\/li>\n<li>Merge the post lock entry into the editor's presence entry (<a href=\"https:\/\/github.com\/WordPress\/presence-api\/commit\/b0d1a83165f64efdcf8b396f99ad0bb0cfb60420\">b0d1a83<\/a>), closes <a href=\"https:\/\/github.com\/WordPress\/presence-api\/issues\/134\">#134<\/a>.<\/li>\n<li>Reindent get_metadata() case with tabs.<\/li>\n<li>Stop funneling screen-revision bumps through one shared option.<\/li>\n<li>Aggregate wp_get_presence_summary() in SQL.<\/li>\n<\/ul>\n\n<h4>0.1.19<\/h4>\n\n<ul>\n<li>Keyboard users can't reach non-link items in the admin bar presence flyout.<\/li>\n<li>Let core's focus color show through admin bar group headers.<\/li>\n<li>Make non-link admin bar flyout items reachable by keyboard.<\/li>\n<li>Preserve focus across heartbeat re-renders in Active Posts widget.<\/li>\n<\/ul>\n\n<h4>0.1.18<\/h4>\n\n<ul>\n<li>Check table availability in the CLI command and debug viewer.<\/li>\n<li>Delete expired presence rows by key in bounded passes.<\/li>\n<li>Guard the CLI cleanup command with a table availability check.<\/li>\n<li>Guard the debug DB viewer query and drop the unused row count.<\/li>\n<\/ul>\n\n<h4>0.1.17<\/h4>\n\n<ul>\n<li>Bound presence keys to the column width and validate REST args.<\/li>\n<li>Provision the presence table per site instead of on admin_init only.<\/li>\n<li>Rebuild the presence table when the version option outlives it.<\/li>\n<\/ul>\n\n<h4>0.1.16<\/h4>\n\n<ul>\n<li>Store presence data as longtext and compare schema version as an integer.<\/li>\n<\/ul>\n\n<h4>0.1.15<\/h4>\n\n<ul>\n<li>Replace 404ing Playground badge with the one used in PR previews.<\/li>\n<li>Stop props bot echoing raw commit author emails in unlinked accounts.<\/li>\n<\/ul>\n\n<h4>0.1.14<\/h4>\n\n<ul>\n<li>Add display_name and avatar_url to presence response.<\/li>\n<li>Add missing alt text to Who's Online widget avatar.<\/li>\n<li>Correct heartbeat function name in render test.<\/li>\n<li>Filter presence read paths by per-post capability.<\/li>\n<li>Restore wp_set_presence, fix assertion quote handling.<\/li>\n<li>Use heartbeat path in render test for reliable coverage.<\/li>\n<li>Use wp_presence_admin_room() after ROOM constant removed.<\/li>\n<li>Write presence via admin handler in render test.<\/li>\n<\/ul>\n\n<h4>0.1.13<\/h4>\n\n<ul>\n<li>Move inline heartbeat JS to a standalone enqueued script.<\/li>\n<li>Replace GROUP_CONCAT session mutations with PHP aggregation.<\/li>\n<\/ul>\n\n<h4>0.1.12<\/h4>\n\n<ul>\n<li>Add action links to the plugin list table.<\/li>\n<li>Add blueprints for plugin page preview button.<\/li>\n<\/ul>\n\n<h4>0.1.11<\/h4>\n\n<ul>\n<li>Enforce per-room authorization checks for presence rooms.<\/li>\n<\/ul>\n\n<h4>0.1.10<\/h4>\n\n<ul>\n<li>Credit every contributor in the release props comment.<\/li>\n<li>Move the admin\/online write out of the Who's Online widget (<a href=\"https:\/\/github.com\/WordPress\/presence-api\/commit\/b7b500bd2ca5eac2d2cc98485ea3ac4452c0a324\">b7b500b<\/a>), closes <a href=\"https:\/\/github.com\/WordPress\/presence-api\/issues\/141\">#141<\/a>.<\/li>\n<li>Render release props in a code block like props-bot.<\/li>\n<\/ul>\n\n<h4>0.1.9<\/h4>\n\n<ul>\n<li>Aggregate props from merged PRs onto release PR.<\/li>\n<li>Default presence widgets to top of dashboard on fresh install.<\/li>\n<li>Remove top-level permissions block that broke release-please startup.<\/li>\n<li>Use inline script to load aggregate-props from workspace.<\/li>\n<\/ul>\n\n<h4>0.1.8<\/h4>\n\n<ul>\n<li>Add AI Tools disclosure to automated contributor PR body.<\/li>\n<li>Add concurrency group, use default_branch instead of hardcoded main.<\/li>\n<li>Robot PR body for first contributions, suppress props-bot on contributor PRs.<\/li>\n<li>Suppress props-bot on release-please PRs.<\/li>\n<li>Use user.type for bot detection, wrap fetch in full try\/catch.<\/li>\n<li>Remove AI disclosure from automated PR body.<\/li>\n<\/ul>\n\n<h4>0.1.7<\/h4>\n\n<ul>\n<li>Add validate_callback validation check to REST screen_key.<\/li>\n<li>Use correct REST route in PHPUnit tests.<\/li>\n<\/ul>\n\n<h4>0.1.6<\/h4>\n\n<ul>\n<li>Dispatch deploy workflow instead of calling as reusable to avoid startup failure.<\/li>\n<li>Flatten deploy workflow to remove reusable nesting causing startup failure.<\/li>\n<li>Use 10up action ASSETS_DIR instead of separate assets workflow.<\/li>\n<li>Use correct heading format in Unlinked Accounts regex.<\/li>\n<\/ul>\n\n<h4>0.1.5<\/h4>\n\n<ul>\n<li>Check entry ownership before enforcing per-user presence limit (<a href=\"https:\/\/github.com\/WordPress\/presence-api\/commit\/5698d9425baa9a67561626c4ca8421a5daf64728\">5698d94<\/a>), closes <a href=\"https:\/\/github.com\/WordPress\/presence-api\/issues\/88\">#88<\/a>.<\/li>\n<li>Exclude expired entries from ownership check to keep cap exact.<\/li>\n<li>Pass VERSION env var to deploy action so SVN tag matches git tag.<\/li>\n<li>Preserve version headings in sync script and correct wp_options claim.<\/li>\n<\/ul>\n\n<h4>0.1.4<\/h4>\n\n<ul>\n<li>Maintenance release.<\/li>\n<\/ul>\n\n<h4>0.1.3<\/h4>\n\n<ul>\n<li>Add 40-user Playground blueprint.<\/li>\n<li>Address stale-screen review feedback.<\/li>\n<li>Address WordPress.org plugin review feedback.<\/li>\n<\/ul>\n\n<h4>0.1.2<\/h4>\n\n<ul>\n<li>Add WordPress Playground blueprint for one-click testing.<\/li>\n<li>Remove demo CLI command from production builds.<\/li>\n<li>Split CI into separate PHPCS, PHPUnit, and Multisite workflows.<\/li>\n<li>Exclude vendor directory from release zip.<\/li>\n<li>Add readme.txt for WordPress.org directory submission.<\/li>\n<li>Add WordPress.org repository compliance files (CONTRIBUTING, CODEOWNERS, CODE_OF_CONDUCT).<\/li>\n<li>Move community health files to .github\/.<\/li>\n<li>Replace deprecated get_page_by_title() with WP_Query.<\/li>\n<li>Add ABSPATH guards to db-viewer.php and demo-seeder.php.<\/li>\n<\/ul>\n\n<h4>0.1.1<\/h4>\n\n<ul>\n<li>Fix Plugin Check errors for directory submission.<\/li>\n<\/ul>\n\n<h4>0.1.0<\/h4>\n\n<ul>\n<li>Dedicated <code>wp_presence<\/code> table with <code>UNIQUE KEY (room, client_id)<\/code> for atomic upserts via <code>INSERT ... ON DUPLICATE KEY UPDATE<\/code>.<\/li>\n<li>60-second TTL with batched cron cleanup.<\/li>\n<li>Public API: <code>wp_get_presence<\/code>, <code>wp_set_presence<\/code>, <code>wp_remove_presence<\/code>, <code>wp_remove_user_presence<\/code>, <code>wp_can_access_presence_room<\/code>, <code>wp_presence_post_room<\/code>.<\/li>\n<li>REST endpoints: <code>GET\/POST\/DELETE \/wp-presence\/v1\/presence<\/code>, <code>GET \/wp-presence\/v1\/presence\/rooms<\/code> with SQL pagination and <code>Cache-Control: no-store<\/code>.<\/li>\n<li>Heartbeat integration for admin and editor presence pings.<\/li>\n<li>Post-lock bridge: translates <code>wp-refresh-post-lock<\/code> into presence entries.<\/li>\n<li>Login\/logout lifecycle hooks gated on <code>edit_posts<\/code>.<\/li>\n<li>Dashboard widgets: Who's Online (with idle detection, overflow threshold, avatar stacks) and Active Posts (grouped by post with editor counts).<\/li>\n<li>Admin bar indicator: avatar stack for same-page users, dropdown grouped by \"On this page\" \/ \"Elsewhere\", alphabetically sorted.<\/li>\n<li>Post list \"Editors\" column with avatar stacks.<\/li>\n<li>Users list \"Online\" filter tab.<\/li>\n<li>WP-CLI: <code>set<\/code>, <code>list<\/code>, <code>summary<\/code>, <code>cleanup<\/code>.<\/li>\n<li>Debugger widget (WP_DEBUG only): heartbeat monitor with live table viewer.<\/li>\n<li><code>wp_presence_default_ttl<\/code> filter and <code>WP_PRESENCE_DEFAULT_TTL<\/code> constant.<\/li>\n<li>Multisite-aware <code>uninstall.php<\/code>.<\/li>\n<li>Full i18n with <code>.pot<\/code> file.<\/li>\n<li>WCAG AA accessibility: ARIA labels, <code>aria-live<\/code>, keyboard navigation.<\/li>\n<li>59 PHPUnit tests, 118 assertions.<\/li>\n<li>Playwright e2e tests with screenshot artifacts.<\/li>\n<\/ul>","raw_excerpt":"System-wide presence and awareness for WordPress.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/es-ar.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/299441","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/es-ar.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/es-ar.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"author":[{"embeddable":true,"href":"https:\/\/es-ar.wordpress.org\/plugins\/wp-json\/wp\/v2\/users\/5911429"}],"replies":[{"embeddable":true,"href":"https:\/\/es-ar.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=299441"}],"wp:attachment":[{"href":"https:\/\/es-ar.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=299441"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/es-ar.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=299441"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/es-ar.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=299441"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/es-ar.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=299441"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/es-ar.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=299441"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/es-ar.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=299441"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}