This document describes how to move from the abandoned beapi/tabs-block package to beapi/blockparty-tabs.
composer remove beapi/tabs-block
composer require beapi/blockparty-tabsActivate blockparty-tabs and deactivate beapi-tabs-block (or tabs-block).
| Old | New |
|---|---|
beapi/tabs |
blockparty/tabs |
beapi/tabs-nav |
blockparty/tabs-nav |
beapi/tabs-nav-item |
blockparty/tabs-nav-item |
beapi/tabs-panels |
blockparty/tabs-panels |
beapi/tabs-panel-item |
blockparty/tabs-panel-item |
Parent title (saved as aria-label on the root) |
ariaLabel on blockparty/tabs-nav |
CSS .wp-block-beapi-tabs |
CSS .wp-block-blockparty-tabs |
Nested structure (nav + panels, paired nav/panel items) is preserved. Icons inside tab labels keep working when blockparty-icons or beapi/icon-block is active (blockparty_tabs_allowed_icon_blocks filter).
WP-CLI only loads active plugins. If you see 'blockparty-tabs' is not a registered wp command, activate the plugin first:
wp plugin activate blockparty-tabsAfter activating blockparty-tabs and updating theme allowlists:
# Preview (current site)
wp blockparty-tabs migrate-from-tabs-block --dry-run
# Apply on the current site
wp blockparty-tabs migrate-from-tabs-block
# Limit post types
wp blockparty-tabs migrate-from-tabs-block --post-type=post,pageThe command always targets one site only. On multisite, repeat it yourself with --url= for each site:
wp blockparty-tabs migrate-from-tabs-block --url=https://example.com/The command:
- Scans
post_contentforbeapi/tabs*block comments and legacy class names - Parses blocks, converts markup recursively, serializes back
- Moves the parent
titleattribute toariaLabelonblockparty/tabs-nav - Aligns saved HTML with blockparty-tabs
save()output (ARIA roles,is-active/is-hiddenclasses) - Updates posts with
wp_slash()on content - Logs migrated / skipped counts
Only the scanned post types are migrated (public REST post types + wp_block by default). Revisions are not included unless you pass them explicitly:
wp blockparty-tabs migrate-from-tabs-block --post-type=revisionIf Yoast Duplicate Post is active, updating a Rewrite & Republish copy via wp_update_post() can abort the WP-CLI run.
Preferred workaround: skip that plugin for the migration only:
wp --skip-plugins=duplicate-post blockparty-tabs migrate-from-tabs-block --url=https://example.com/- Update theme allowlists from
beapi/tabs*toblockparty/tabs* - Update theme SCSS selectors from
.wp-block-beapi-tabsto.wp-block-blockparty-tabs - Smoke-test top alignment and sidebar layouts, keyboard navigation, and nested tabs