Skip to content Skip to sidebar

This thread is resolved. Here is a description of the problem and solution.

Problem:
The client reported issues with WPML Sticky Links 1.5.5 is not converting permalinks in widgets and page excerpts. The site uses the Classic Editor and the Classic Widgets plugin.
Solution:
In fact, this is not a bug. Sticky Links does not cover those elements for link conversion yet. The support provided a patched version of Sticky Links, which solved those issues, and the issue was escalated to development for further revision.

If these solutions do not resolve your issue or seem outdated, we highly recommend checking related known issues at https://wpml.org/known-issues/, verifying the version of the permanent fix, and confirming that you have installed the latest versions of themes and plugins. If the problem persists, please open a new support ticket.

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.

Tagged: 

This topic contains 38 replies, has 0 voices.

Last updated by johannesB-39 3 months, 1 week ago.

Assisted by: Andreas W..

Author Posts
January 13, 2026 at 6:52 pm #17727173

Andreas W.
WPML Supporter since 12/2018

Languages: English (English ) German (Deutsch )

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

Das ist in dem Fall leider zu erwarten, wenn ein Widget bereits per admin_texts registriert ist.

Man muss diese Strings in dem Fall zuerst löschen.

Beispiel:
admin_texts_widget_custom_html

Das ist nicht nur bei Widgets der Fall, sondern bei allen admin_texts-String, die von der wp_options-Tabelle stammen.

Ich kann dazu gerne unseren Produkt-Manager konsultieren, aber bislang kann ich alleine bestätigen, dass dieses Verhalten in WPML aktuell so zu erwarten ist.

January 13, 2026 at 7:35 pm #17727225

johannesB-39

Probably, I wasn't clear enough:

The widgets weren't registered as strings two times simultaneously, one time under the domain "Widgets" and at the same time under "admin_texts". No, in contrary, first, they got registered under the domain "Widgets" only. And everything was just fine until I had to change something in the German (= source language) text content of them under Appearance -> Widgets.

This adjustments I made caused the translated content of the same string to disappear from the frontend. It didn't show up any more, instead of this, the adjusted German content showed up.

In other words, the effect of this adjustments in the original widget was that its connection to the respective string got broken. I checked this: even in the text field with the German content of this widget under WPML -> String Translation (in the backend), the modification of the text content I made under Appearance - > Widgets wasn't applied (and couldn't be applied manually neither).

So, as far as I understand, WPML threatens any modification of the widget content under Appearance -> Widgets, in the case that this widget has already been registered as a string automatically under the domain "Widget", as if there was a new widget created. That's why the correct translated content only showed up in the frontend again, when I registered this (already registered!) widget under "Admin Texts" as a new string and translated this string then. Of course, I then also deleted the old and obsolete string, which was registered under the domain "Widgets".

So, in no moment, there was the same widget registered as a string under two different domains. Although, my impression was, before I deleted this old obsolete string, that I even would not need to do this, since it wasn't affecting the correct rendering of the new string with all its translations in the frontend.

Hope this clarifies it a bit more. So, my suggestion above still is valid and would resolve this particular issue, I guess...

January 13, 2026 at 7:49 pm #17727246

Andreas W.
WPML Supporter since 12/2018

Languages: English (English ) German (Deutsch )

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

On my test, it currently looks this way:

Steps:
1) WP with two languages
2) Create a Custom HTML Widget in the Sidebar or Footer
3) Verify that the widget's text is registered in ST
Example will lead to two registered strings for the same widget title:
- admin_texts_widget_custom_html > [widget_custom_html][2]title
- Widgets > widget title
Note: If the strings have never been manually added from admin_texts, this step might not be replicable.
4) Update the widget's title text and revise ST
- strings will not be updated

Workaround:
Delete the entry for admin_texts_widget_custom_html [widget_custom_html][2]title
Edit and save the widget again and verify ST

Note:
Such behavior was always expected when handling admin_texts strings.

Client's request:
In this ticket, the client requests that ST handles admin_texts strings as any other strings. Once the text is updated inside widgets or theme options, the changes should be reflected on ST.

This is my escalated report, which will be reviewed by our Product Manager as a Feature Request.

January 14, 2026 at 12:51 am #17727588

Andreas W.
WPML Supporter since 12/2018

Languages: English (English ) German (Deutsch )

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

I had to cancel the feature request and I am consulting my team, as I am having problems with being able to replicate the issue on my sandbox. I can no longer confirm this issue.

I was able to confirm it for a moment in the sandbox, but currently it does not occur again and do not find the necessary steps to replicate the same issue.

Could you please try to replicate it and let me know which steps you took?

One-Click-Login:
hidden link

HINT:
Take note that old strings, from widgets that have been deleted, will always need to be removed manuall from WPML > String Translation. In your casem when using the widget "Classic Widgets" you will find string for Widgets inside the following text domains:

- Widgets
- admin_texts_widget_custom_html (In case of the Legacy Custom HTML Widget)

I suggest you delete any older string, that are not requiered longer for translation and confirm that all strings are assigned ot the correct source language:

Guide:
https://wpml.org/documentation/getting-started-guide/string-translation/how-to-change-the-source-language-of-strings/

Please, on your site, also make sure to test with latest versions of WPML, which are:
- WPML 4.9.0-b.2
- String Translation 3.5.0-b.2

You can find the updates here:
https://wpml.org/download/wpml-multilingual-cms/?section=changelog
and here:
https://wpml.org/download/wpml-string-translation/?section=changelog

January 14, 2026 at 4:16 pm #17730214

Andreas W.
WPML Supporter since 12/2018

Languages: English (English ) German (Deutsch )

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

I have feedback from the Second Tier Support.

Regarding Widget translations:

You are using the plugin "Classic Widgets," which enables Legacy Widgets, and there may be cases where the strings for such widgets will not appear inside the "Widgets" text domain. Only in such cases will you add the strings from admin_texts.

Guide:
https://wpml.org/documentation/getting-started-guide/translating-widgets/#translate-legacy-widgets

We can not confirm on our tests that already registered strings are not updated on String Translation after editing the original widget content.

---

Regarding intern links on excerpts:

The second-tier support ran various tests and can not confirm that internal links are not adjusted automatically when used on excerpts. Also I tested today again on our sandbox and the issue is not replicable.

---

Regarding Sticky Links:
The proposed fix is under reivew and I do not have any feedback yet.

---

Before I take further tests on your site, please answer:

On hidden link you are using a Multisite Network but I can only see one active site. Is it correct that this WordPress Multisite install only has one site?

January 14, 2026 at 5:31 pm #17730675

johannesB-39

Hello Andreas,

thanks for forwarding the tier 2 support feedback!

For this particular project I could resolve, somehow, all the issues manually now. So no need to dig further into them. Since it's a very peculiar project that grew over many years with many adjustments to get where we are now (layout, functionality, languages etc...), the issues that we encountered might have been related to this very particular configuration. As you noticed correctly for instance, we are working with a multisite installation but with just one single active site. The reason for this is that, originally, we planned to make the site multilingual with multilingual press and subdomains. But later, some years later... we dropped this idea for several reasons and got it done with WPML instead now.

Again, thank you very much for your support!
Kind regards,
Johannes

January 14, 2026 at 7:36 pm #17731072

Andreas W.
WPML Supporter since 12/2018

Languages: English (English ) German (Deutsch )

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

Thank you for your feedback!

On wp-test-2.kreditprojekt.org I realized that WordPress was using version 6.6.4, which is why I now updated to the latest version 6.9.

Further, I installed the latest beta versions of WPML 4.9 and our addons and the patched version of Sticky Links, which includes my fixes and was currently not installed.

1) Internal links on excerpts on the Homepage's Featured Pages section
I am still unable to confirm this issue on my sandbox in a minimal setup. Manually adjusting the links directory inside the WordPress Editor might be the fastest workaround. I have done this already for the English homepage, and it solved the issue.

2) Internal links on page contents
This appears to be solved since Custom Permalinks had been disabled. Also, this issue was not replicable on our sandbox.

3) Widget translations not updating:
Make sure that the widget strings are registered to the correct source language, as WPML > String Translation.
Example: Currently, the sidebar widget texts are originally created in German, but in String Translation, they were assigned to English.
Guide: https://wpml.org/documentation/getting-started-guide/string-translation/how-to-change-the-source-language-of-strings/

4) Sticky Links
The plugins now seem to convert all internal links on content, widgets, and excerpts, but I am still waiting for the Second Tier Support for feedback.

January 21, 2026 at 6:07 pm #17751683

Andreas W.
WPML Supporter since 12/2018

Languages: English (English ) German (Deutsch )

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

I would like to share the feedback from the second-tier support regarding issues reported on this ticket:

1) Admin texts strings arenot overwritten when altering the original text in widgets
The second-tier support added that there usually should be no need to register widgets from admin_texts. That option is only reserved for a widget that is not shown in the Widgets textdomain and usually implies a custom widget.

Workaround:
- Delete any admin_texts strings for your widgets at WPML > String Translation
- Edit the original widgets and revise the registered strings again
- Let me know in case the issue persists

2) We can not confirm on our test that internal link targets inside excerpts are not adjusted automatically. If this issue still occurs on your site, please name me an example of affected content, and I will take a closer look.

3) Sticky Links not covering widgets and excerpts
The second-tier support is yet uncertain about if this request will reach development state. The patched version of the plugin, which I created as a workaround had been installed on your site.

Please let me know if you need me to take another look at your site.

January 24, 2026 at 11:28 pm #17759647

johannesB-39

Thank you very much, Andreas, for your help and also for the second tier support's feedback. As I wrote, we could fix the issues on our site somehow manually. No need to dig into those issues any further, the site has already been launched. I guess that these issues, at least part of them, had to do with the peculiar configuration of our project.

Kind regards,
Johannes