Back to Community

Troubleshooting Common Polylang and JetEngine Integration Issues

20 threads Sep 7, 2025 PluginPolylang

Content

Integrating Polylang with powerful tools like JetEngine from Crocoblock is a common setup for building sophisticated multilingual sites. However, users often encounter specific issues when trying to make these two plugins work together seamlessly. Based on community reports, this guide outlines the most frequent problems and their potential solutions.

Common Integration Challenges and Solutions

1. JetEngine Custom Post Types and Taxonomies Not Recognized

The Problem: Polylang does not list or provide translation options for Custom Post Types (CPTs) or taxonomies registered by JetEngine, even though standard WordPress types are detected.

Why It Happens: This typically occurs due to the specific timing or method JetEngine uses to register its custom types. If Polylang loads its configuration before JetEngine has finished registering all post types and taxonomies, it will be unaware of them.

Potential Solutions:

  • Check Polylang Settings: First, navigate to Languages > Settings > Custom post types and Taxonomies. Ensure the checkboxes for your JetEngine CPTs and taxonomies are selected for translation.
  • Plugin Load Order: The load order of plugins can be critical. Try adjusting the load order so that JetEngine loads before Polylang. This can sometimes be achieved by renaming the JetEngine plugin folder to force it to load alphabetically first (e.g., aa-jetengine).
  • Re-save Permalinks: A simple but often effective step is to visit Settings > Permalinks and click "Save Changes" without making any modifications. This can flush rewrite rules and help plugins re-register their components.

2. Translated Taxonomy Terms Link to the Wrong Language or Cause 404 Errors

The Problem: When you click on a link for a translated taxonomy term (e.g., a category), you are redirected to the URL of another language or encounter a 404 "Page Not Found" error.

Why It Happens: This is often a permalink or slug conflict. The issue can arise if the term slugs between languages are not unique or if there is a misconfiguration in how the archive pages for these terms are handled, especially when using page builders like Elementor.

Potential Solutions:

  • Verify Term Slugs: Ensure that the slug for each translated term is unique and does not contain any special characters that might cause conflicts. For example, a term "Guests" with the slug guests should have a German translation "Gäste" with a distinct slug like gaeste, not gäste.
  • Check Archive Page Assignments: If you are using a page builder to create custom archive templates, verify that the correct translated archive page is assigned to the translated taxonomy term in your page builder's settings.
  • Re-save Permalinks: Again, visiting Settings > Permalinks and saving changes can resolve many routing issues by resetting the site's URL structure.

3. JetEngine Meta Field Values Not Translating or Losing Sync

The Problem: Meta fields created with JetEngine, particularly checkboxes or radio buttons that store arrays of values, do not translate correctly. When you translate them, the connection between the original and translated values is lost, requiring you to re-add each value manually.

Why It Happens: Polylang's String Translation module is designed for translating static strings, not complex data structures like serialized arrays. Translating a serialized array can break its structure, causing the data to become unusable.

Potential Solutions:

  • Use Post Meta Synchronization: For meta fields that do not need a different value per language (e.g., a simple yes/no checkbox), you can use Polylang's synchronization feature. Go to Languages > Settings > Synchronization and enable synchronization for the specific custom field. This will copy the value from the original post to all its translations.
  • Custom Development for Complex Fields: For complex fields like checkboxes with multiple values that *do* require translation, a custom-coded solution is often necessary. This would involve using hooks like pll_copy_post_metas to manually handle how the array is copied and translated between posts. Consulting a developer familiar with both plugins is recommended for this approach.

4. JetSmart Filters Not Displaying Translated Content

The Problem: Filters created with JetSmartFilters do not display translated values for select dropdowns, even though the meta fields themselves have been translated in Polylang. Checkbox filters may work while select filters do not.

Why It Happens: JetSmartFilters might be querying and displaying the meta values directly from the database without passing them through Polylang's translation filters. The plugin may not be fully aware of the current language context.

Potential Solutions:

  • Check for Updates: Ensure that both Polylang and JetSmartFilters are updated to their latest versions, as compatibility improvements are often added in new releases.
  • Contact JetSmartFilters Support: Since the issue is specific to how one third-party plugin interacts with another, reaching out to JetSmartFilters support is a logical step. They may have a known solution or a development hook to make their filters Polylang-aware.

General Best Practices

  • Clear Caches: Always clear any server, plugin, or browser caches after making configuration changes.
  • Conflict Testing: If problems persist, perform a standard conflict test. Temporarily deactivate all plugins except Polylang and JetEngine (and its related Crocoblock plugins). If the issue resolves, reactivate your other plugins one by one to identify the conflict.
  • Documentation: Always refer to the official documentation for Polylang and Crocoblock for the most up-to-date integration guides.

While Polylang and JetEngine are both powerful tools, their integration can sometimes require careful configuration and troubleshooting. The steps above should resolve the majority of common issues encountered by the community.

Related Support Threads Support