Install
Upload it under Plugins → Add New Plugin → Upload Plugin, then activate.
Install straight from GitHub with WP-CLI:
wp plugin install https://github.com/philhoyt/cpt-taxonomy-syncer/releases/download/v1.4.3/cpt-taxonomy-syncer.zipUpdates itself. It ships its own updater (Plugin Update Checker), so new versions appear under Dashboard → Updates.
A WordPress plugin that automatically syncs Post Types with Taxonomies, creating shadow taxonomies and bidirectional relationships with block editor integration for displaying related content.
Features
Automatic Synchronization
- Creates corresponding taxonomy terms when posts are created (and vice versa)
- Updates titles and content between synced posts and terms
- Deletes corresponding items when one is removed
- Prevents duplicate creation and orphaned data
Shadow Taxonomy System
- Creates a taxonomy that mirrors your post type, enabling powerful relationship queries
- Leverages WordPress's taxonomy system for organizing and querying related content
- Maintains the flexibility of custom post types while providing taxonomy-based relationships
Block Editor Integration
- Adds "Use synced relationship" toggle to Query Loop blocks and Relationship Query Loop block variation
- Displays posts that share taxonomy terms with the current post using the shadow taxonomy relationship
- Custom Ordering: Drag-and-drop interface to reorder related posts per relationship
- Previous/Next Post Blocks: Custom navigation blocks that respect custom ordering
- Menu Order Fallback: Automatically uses
menu_orderwhen custom order hasn't been set
Admin Tools
- Settings page at Tools → CPT-Tax Syncer
- Add/remove CPT-taxonomy sync pairs
- Manual bulk sync operations for existing content
- Optional archive redirection from taxonomy pages to post pages
- Relationships Dashboard: Per post-type dashboard showing parent-to-child relationships with drag-and-drop ordering
Installation
- Download the latest
cpt-taxonomy-syncer.zipfrom the GitHub Releases page - In your WordPress admin, go to Plugins → Add New Plugin
- Click Upload Plugin and select the downloaded
.zipfile - Click Install Now, then Activate Plugin
- Configure at Tools → CPT-Tax Syncer
Usage
Setup
- Go to Tools → CPT-Tax Syncer
- Click Add New Pair
- Select your Post Type and Taxonomy
- Click Save Changes
- Use sync buttons for existing content
Block Editor
- Add a Query Loop or Relationship Query Loop block to any template
- In block inspector, find Synced Relationships panel
- Toggle "Use synced relationship"
- Select target post type from Query Loop settings
- Optionally enable "Use custom order" to respect the order set in the Relationships dashboard
Custom Ordering
- Navigate to your post type's admin menu (e.g., Posts → Relationships)
- View all parent posts and their related posts
- Drag and drop related posts to reorder them
- The custom order is automatically saved and used by Query Loop blocks and Previous/Next Post blocks
Previous/Next Post Navigation
- Add Previous Post (Relationship) or Next Post (Relationship) blocks to your templates
- Select the relationship pair to use for navigation
- Optionally enable/disable custom order
- Customize the link text (default: "Previous:" or "Next:")
- Navigation respects the custom order set in the Relationships dashboard
Development
This plugin uses @wordpress/scripts for building JavaScript assets. See BUILD.md for build instructions.
Quick Start
npm install
npm run build
Changelog
1.3.0
- Fixed critical
uninstall.phpfatal error caused by an undefined constant - Fixed duplicate REST route registrations when multiple CPT-taxonomy pairs are configured
- Fixed
sync_post_update_to_term()ignoring the authoritative post meta relationship - Fixed shared static
$is_deleting/$is_updatingflags breaking multi-pair sync - Fixed
get_post_type_relationships()returning posts from unrelated post types - Fixed unescaped
$wrapper_attributesoutput in block render templates - Replaced nested ternary in Relationships Dashboard with a readable variable
- Removed unused
SelectControlimport from Relationship Query Loop variation - Added missing
@packagetags and corrected inline comment style in render templates - Full linting pass: zero PHPCS errors, zero ESLint errors
1.2.0
- Custom Ordering System: Drag-and-drop interface for reordering related posts per relationship
- Relationships Dashboard: Per post-type dashboard showing parent-to-child relationships
- Previous/Next Post Blocks: Custom navigation blocks with relationship-based ordering support
- Menu Order Fallback: Automatic fallback to
menu_orderwhen custom order isn't set - Major performance improvements with transient caching for relationship queries
- Implemented query result caching with automatic invalidation
- Optimized REST API endpoints to eliminate N+1 query problems
- Added comprehensive developer hooks and filters for extensibility
- Improved static cache management with TTL-based expiration
- Enhanced developer reference section with meta key values
- Fixed admin.js with batch processing and progress indicators
1.1.0
- Major performance improvements with optimized bulk sync operations
- Implemented batch processing with REST API endpoints
- Fixed duplicate post title handling
- Added admin columns and synced post information
- Full internationalization support
1.0.0
- Initial release
Requirements
- WordPress 6.7+
- PHP 7.4+
- Node.js 14+ (for building assets)
License
GPL v2 or later
Releases
8 releases. Each count is every asset in that release; expand a row for the breakdown.
Tag
Published
Assets
Downloads
v1.4.3
latest
Oct 15, 2026 7d ago
cpt-taxonomy-syncer.zip
+1 asset
2
cpt-taxonomy-syncer.zip2
readme.txt0
May 16, 2026 5mo ago
cpt-taxonomy-syncer.zip
+1 asset
8
cpt-taxonomy-syncer.zip8
readme.txt0
May 16, 2026 5mo ago
cpt-taxonomy-syncer.zip
+1 asset
8
cpt-taxonomy-syncer.zip8
readme.txt0
May 16, 2026 5mo ago
cpt-taxonomy-syncer.zip
+1 asset
5
cpt-taxonomy-syncer.zip5
readme.txt0
Active-site estimate ≈10 comes from the median of recent superseded releases. Method.