Install
This is the repository archive. It installs, but the folder name will carry the branch suffix and updates will not flow.
Install straight from GitHub with WP-CLI:
wp plugin install https://github.com/denis-ershov/wp-meta-sync/archive/refs/heads/main.zipHigh-performance synchronization of meta fields between post translations for multilingual WordPress sites.
🎯 What It Does
WP Meta Sync automatically keeps custom meta fields synchronized across all language versions of your posts. When you update a featured image, custom field, or any meta data on one language version, it instantly syncs to all translations.
🚀 Key Features
- Universal Compatibility - Works with Polylang, WPML, qTranslate-X, and MultilingualPress
- High Performance - Optimized for large sites (60,000+ posts, 2M+ meta records)
- Background Processing - Non-blocking sync operations via WordPress cron
- Smart Caching - Reduces database queries with intelligent translation caching
- Real-time Dashboard - Monitor sync progress and queue status
- Debug Logging - Detailed operation logs for troubleshooting
📋 Requirements
- WordPress 5.0 or higher
- PHP 7.4 or higher
- One of the supported multilingual plugins:
- Polylang (Free or Pro)
- WPML
- qTranslate-X
- MultilingualPress
⚡ Quick Start
- Install the plugin and activate it
- Go to Settings → WP Meta Sync
- Add meta field keys you want to sync (one per line):
_thumbnail_id custom_field_name product_price seo_description - Select post types to synchronize
- Save settings and start syncing!
🎛️ Configuration
Meta Fields to Sync
Add any meta field keys you want synchronized:
_thumbnail_id- Featured images_wp_page_template- Page templatescustom_field_name- Your custom fields_yoast_wpseo_title- SEO data_product_price- WooCommerce data
Performance Settings
- Batch Size: 50 for shared hosting, 100+ for VPS
- Execution Time: 25 seconds (auto-continues in background)
- Background Processing: Enabled for large operations
- Translation Caching: Recommended for sites with many posts
💻 Developer API
// Add meta field for synchronization
wpms_add_sync_meta_key('my_custom_field');
// Remove meta field from sync
wpms_remove_sync_meta_key('old_field');
// Force sync specific post
wpms_sync_post_meta(123);
// Check queue size
$queue_size = wpms_get_queue_size();
Hooks & Filters
// Auto-sync on WooCommerce product save
add_action('woocommerce_process_product_meta', function($post_id) {
wpms_sync_post_meta($post_id);
});
// Custom sync for critical fields
add_action('updated_post_meta', function($meta_id, $post_id, $meta_key, $meta_value) {
if ($meta_key === 'critical_field') {
wpms_sync_post_meta($post_id);
}
}, 10, 4);
📊 Performance
Optimized for Large Sites:
- Batch processing with configurable sizes
- SQL query optimization with bulk operations
- Memory-efficient processing with queue system
- Time-limited execution prevents timeouts
Before WP Meta Sync: 10-50 posts/second
After WP Meta Sync: 200-500 posts/second
🌍 Languages
- English - Default
- Russian (Русский) - Complete
📈 Use Cases
- E-commerce sites with product translations
- Corporate websites with multilingual content
- Blogs with international audiences
- Any WordPress site using multilingual plugins
🛠️ Installation
Manual Installation
- Download the plugin zip
- Upload to
/wp-content/plugins/wp-meta-sync/ - Activate through WordPress admin
📝 Changelog
1.0.0 (2025-09-03)
- Initial release
- Universal multilingual plugin support
- High-performance batch processing
- Real-time dashboard with progress monitoring
- Background processing with WordPress cron
- Debug logging and error handling
- Multi-language interface (English, Russian)
🤝 Contributing
We welcome contributions!
- Report bugs via GitHub Issues
- Submit translations via pull requests
- Contribute code following WordPress coding standards
📞 Support
- GitHub Issues: Bug Reports & Feature Requests
📄 License
This plugin is licensed under the GPL v3 or later.
Made with ❤️ for the WordPress multilingual community
⭐ Star this repo if WP Meta Sync helps your multilingual site!