• agadjuka

    (@agadjuka)


    Hi everyone,

    I am building a multilingual bike rental website. The primary language is English (EN), and the secondary is Russian (RU) using directories (e.g., /ru/).

    I want to create a clean, automated workflow for the site owner, but I am hitting a wall with taxonomy translations and filter routing.

    My Stack:

    • WordPress Core
    • Custom Post Type UI (CPT: bikes, Custom Taxonomy: bike_category, bike_brand)
    • Advanced Custom Fields (ACF) – used for entering bike specs.
    • Polylang (Free)
    • Filter Everything Pro

    I am facing three specific issues:

    Issue 1: Polylang Taxonomy Translation Bug & Post Sync
    My goal: I want to create a bike post in EN, assign it to an EN category (e.g., “Maxi Scooters”), and when I create the RU translation of that post, I want it to automatically assign the linked RU category (“Макси скутеры”).
    The Problem: I can’t even get the taxonomy terms to link properly. When I go to Bikes -> Categories, and click the “+” icon under the RU flag to translate “Maxi Scooters”, it fails. It either doesn’t save the translation, creates an unlinked duplicate term, or just refreshes the page doing nothing. (Polylang settings are correctly checked for custom taxonomies).

    Because of this, all positions are displayed on the English version of the site, but on the Russian version of the site the filter shows that no positions have been added.

    Issue 2: Filter Everything Pro – Dropping the /ru/ prefix
    I am using Filter Everything Pro to filter the catalog and create dedicated SEO pages for categories.
    The Problem: When a user is on the Russian catalog page (domain.com/ru/catalog/) and selects a filter (e.g., “Maxi Scooters”), the plugin completely ignores the Polylang language prefix. It redirects the user to the English version (domain.com/catalog/category-maxi-scooters/) or throws a 404 error. How do I force Filter Everything SEO Rules to respect and keep the /ru/ prefix during AJAX/URL generation?

    Issue 3: Best Practice for Filter UI Localization
    What is the proper, non-hacky way to translate the Filter Everything widget itself? I need the filter titles (like “Category”, “Brand”) and the taxonomy terms inside them to automatically display in Russian when the user is on the /ru/ version of the site. Can this be done dynamically through String Translations, or do I have to create a completely separate Filter Set for the RU language?

    Any guidance, hooks, or best practices to make this stack work seamlessly would be highly appreciated!

    Thank you!

Viewing 2 replies - 1 through 2 (of 2 total)
  • Issue 1: Polylang Taxonomy Translation Bug & Post Sync

    I’ll recommend posting in the Polylang (free) plugin’s dedicated sub-forum to get direct assistance from the plugin’s developers and support community -> https://ww.wp.xz.cn/support/plugin/polylang/

    Issue 2: Filter Everything Pro – Dropping the /ru/ prefix
    Issue 3: Best Practice for Filter UI Localization: What is the proper, non-hacky way to translate the Filter Everything widget itself?

    These questions related to the Filter Everything Pro plugin, which is a commercial product. As commercial products, by their very nature, are not hosted here in WordPress’s free plugins database, WordPress support volunteers are unable to just grab the code, install and test them, and offer any assistance here.

    You’ll need to seek answers to these questions from the plugin’s vendor. They built and sold the plugin, and they should be in the best position to help you configure and use their commercial product -> https://filtereverything.pro/support/

    Your topic remains open here for anyone with any insights to chime in, but for the best support, always use the appropriate support channel for the specific part of your WordPress website that you need help with.

    Good luck!

    fanyab

    (@fanyab)

    1. Polylang taxonomy translation not linking correctly

    What you want is the standard Polylang term translation behavior, where:

    EN term: Maxi Scooters

    RU term: Макси скутеры

    Both terms are linked translations

    Then when you translate a bike post, Polylang automatically maps the taxonomy.

    First check these settings

    Go to:

    Languages → Settings → Custom post types & Taxonomies

    Make sure:

    bikes → enabled

    bike_category → enabled

    bike_brand → enabled

    Then save.

    If this was disabled before, Polylang may have created orphan terms, which causes the weird behavior you described.

    Correct workflow for translating taxonomy terms

    Do not create terms using the “+” button first if it’s buggy.

    Instead do this:

    Go to
    Bikes → Categories

    Edit the English term
    Maxi Scooters

    On the edit page you will see Languages → Russian

    Click Add translation

    Enter:

    Name: Макси скутеры
    Slug: maxi-skutery

    Save

    This method almost always works better than the small + icon.

    If Polylang already created duplicates

    Sometimes the system ends up with:

    EN: Maxi Scooters

    RU: Макси скутеры

    RU duplicate not linked

    To fix:

    Edit the Russian term

    Find Translations

    Link it manually to the EN term.

    Result you should get

    When you translate a post:

    EN bike post
    → Category: Maxi Scooters

    RU bike post
    → Category automatically becomes
    Макси скутеры

    No manual selection needed.

    1. Filter Everything ignoring /ru/

    This is a known issue with filtering plugins that generate their own URLs.

    Filter Everything usually builds URLs like:

    /catalog/category-maxi-scooters/

    But with Polylang the correct version should be:

    /ru/catalog/category-maxi-scooters/
    First check plugin settings

    Go to:

    Filter Everything → Settings

    Look for:

    SEO Rules

    Permalinks

    AJAX filtering

    Try disabling AJAX filtering temporarily.

    Many multilingual sites only work properly when filters are not AJAX-based.

    Enable Polylang compatibility

    Check if this option exists:

    Use current language in filters

    If not available, the workaround is forcing the language prefix via WordPress filters.

    Example:

    add_filter(‘fe_current_language’, function($lang){
    if(function_exists(‘pll_current_language’)){
    return pll_current_language();
    }
    return $lang;
    });

    This tells the plugin to use the current Polylang language when building URLs.

    Also check Permalink structure

    Recommended:

    domain.com/catalog/
    domain.com/ru/catalog/

    Avoid mixing:

    /catalog/?lang=ru

    Polylang directory mode is the cleanest.

    1. Translating the filter UI (Category, Brand, etc.)

    This part is actually very easy with Polylang.

    There are two things to translate:

    A) Filter labels

    Example:

    Category
    Brand
    Engine size
    Price

    Go to:

    Languages → Translations

    Search for the filter labels and translate them.

    Example:

    EN RU
    Category Категория
    Brand Бренд

    Filter Everything usually registers its strings automatically.

    If not:

    pll_register_string(‘filter_category’,’Category’);
    B) Taxonomy terms

    These come from your taxonomy translations.

    Example:

    EN:

    Maxi Scooters
    Sport Bikes
    Electric Bikes

    RU:

    Макси скутеры
    Спорт байки
    Электробайки

    Once the taxonomy translations are correctly linked, Filter Everything will automatically show the correct terms on /ru/.

Viewing 2 replies - 1 through 2 (of 2 total)

You must be logged in to reply to this topic.