Skip to content Skip to sidebar

This is the technical support forum for WPML - the multilingual WordPress plugin.

Everyone can read, but only WPML clients can post here. WPML team is replying on the forum 6 days per week, 22 hours per day.

Sun Mon Tue Wed Thu Fri Sat
- - 9:00 – 18:00 9:00 – 18:00 9:00 – 18:00 9:00 – 18:00 9:00 – 18:00
- - - - - - -

Supporter timezone: America/Lima (GMT-05:00)

Tagged: 

This topic contains 3 replies, has 0 voices.

Last updated by Andreas W. 1 day, 22 hours ago.

Assisted by: Andreas W..

Author Posts
May 14, 2026 at 6:57 pm #18036855

davidM-175

On multilingual tour pages, internal links pointing to other language versions of the same page are being automatically rewritten by WPML to point to the current page's language version instead.

May 15, 2026 at 2:27 pm #18039324

Andreas W.
WPML Supporter since 12/2018

Languages: English (English ) German (Deutsch )

Timezone: America/Lima (GMT-05:00)

Hello,

Thank you for reaching out!

WPML's internal links will always automatically point to the current active language.

Do I understand correctly that you try to display content in different languages on the same page?

Could you please send me a URL where I can see the issue?

Best regards
Andreas

May 15, 2026 at 6:52 pm #18039806

davidM-175

Hello Andreas,

many thanks for coming back on this one.

Here you can see the issue: hidden link

For SEO is good if the pages are connected by internal links so we are offering on this page the same tour in different languages - do you speak English?click here!
But all the links are always changed back to the same page.

It's interesting that at older pages it's working very well. For example here:

hidden link

Do you have some idea how to solve it?

Many thanks,
David

May 15, 2026 at 10:45 pm #18039915

Andreas W.
WPML Supporter since 12/2018

Languages: English (English ) German (Deutsch )

Timezone: America/Lima (GMT-05:00)

There is a hook available that allows you to disable the automatic internal link adjustment:

add_filter( 'wpml_translate_link_targets', '__return_false' );

I would suggest to let it run only on the Frontend:

add_filter('wpml_translate_link_targets', function ($translate) {

	// Frontend only
	if (is_admin() || wp_doing_ajax() || wp_doing_cron() || (defined('REST_REQUEST') && REST_REQUEST)) {
		return $translate;
	}

	if (! is_page()) {
		return $translate;
	}

	return $translate;
});

You could add it to the functions.php file of a Child Theme or a Code Snipept Plugin.

You could also try to wrap it into a conditional to make it run only on specific pages, but note that all translated pages have unique post IDs.