WAIT: Internal links in WPML translations point to the original language page

Hi everyone! :waving_hand:

I’m building a multilingual site (Catalan as default, plus Spanish, English and French) and translating it with WPML’s automatic translation (ATE). It’s working really well overall, but I’ve run into something I never had before.

All buttons and links set to an internal link keep pointing to the Catalan page in every language. For example, my “Demana pressupost” button gets translated perfectly to “Pide presupuesto” / “Request a quote” / “Demander un devis”… but they all still go to /pressupost/ instead of /es/presupuesto/, /en/quote/, etc. The translated pages exist and are properly connected in WPML. It also happens with the logo link in header and footer templates.

This used to work fine on previous projects: WPML would just send each language to its own page.

The only way I can fix it now is editing each translation in Bricks, but then I lose the ATE workflow, which isn’t great with 4 languages.

With some AI help I’ve added a small snippet as a temporary workaround (it maps the link’s page ID to the current language with wpml_object_id through the bricks/element/settings filter), and that does the trick. I’d much rather not depend on it, though.

Could you have a look?

Thanks so much!


I am on WPML 5.2.0. Happened with Bricks 2.4.3. But still happening after updating to 2.4.4 today.

Hi Isaura,
Thanks for your report!

Could you check whether “Adjust IDs for multilingual functionality” is enabled under WPML → Settings → Compatibility → Make Themes Work Multilingual? In older WPML layouts, this is under WPML → Languages. WPML documents the setting here: Configure WPML Compatibility With WordPress Themes and Plugins - Settings and Custom wpml-config.xml

A previous Bricks report with the same button-link symptom was resolved by enabling this setting. Please test one translated button on staging with your workaround temporarily disabled.