Skip to content Skip to sidebar

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

Problem:
The client was facing two issues: 1) Confusion about which 'GENRE' entries to delete and re-add in a multilingual setup. 2) Translations for product tags were missing on the Italian version of the site, showing only the default language.
Solution:
1. For the rewrite rules issue, we provided specific rewrite rules for both regular themes and the Astra theme, ensuring that translated taxonomy slugs are correctly recognized. Here are the rewrite rules for a regular theme:

[genere/([^/]+)/feed/(feed|rdf|rss|rss2|atom)/?$] => index.php?pa_genre=$matches[1]&feed=$matches[2]<br />[genere/([^/]+)/(feed|rdf|rss|rss2|atom)/?$] => index.php?pa_genre=$matches[1]&feed=$matches[2]<br />[genere/([^/]+)/embed/?$] => index.php?pa_genre=$matches[1]&embed=true<br />[genere/([^/]+)/page/?([0-9]{1,})/?$] => index.php?pa_genre=$matches[1]&paged=$matches[2]<br />[genere/([^/]+)/?$] => index.php?pa_genre=$matches[1]

And for the Astra theme:

[genre/([^/]+)/feed/(feed|rdf|rss|rss2|atom)/?$] => index.php?pa_genre=$matches[1]&feed=$matches[2]<br />[genre/([^/]+)/(feed|rdf|rss|rss2|atom)/?$] => index.php?pa_genre=$matches[1]&feed=$matches[2]<br />[genre/([^/]+)/embed/?$] => index.php?pa_genre=$matches[1]&embed=true<br />[genre/([^/]+)/page/?([0-9]{1,})/?$] => index.php?pa_genre=$matches[1]&paged=$matches[2]<br />[genre/([^/]+)/?$] => index.php?pa_genre=$matches[1]

2. To address the issue with Yoast SEO and missing translations, we recommended downgrading Yoast SEO by deactivating it, removing the current version, and uploading an earlier version.

If this solution does not resolve your issue or seems outdated, we recommend checking related 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 20 replies, has 1 voice.

Last updated by Carlos Rojas 2 months, 1 week ago.

Assisted by: Carlos Rojas.

Author Posts
May 22, 2026 at 10:27 am #18053915

Carlos Rojas
WPML Supporter since 03/2017

Languages: English (English ) Spanish (Español )

Timezone: Europe/Madrid (GMT+02:00)

Hi,
There was a problem with the rewriting rules for the attributes.

After activating a default WordPress theme and activating the Astra child theme again, the attribute hidden link is showing correctly.

Can you confirm that the issue is solved?

May 22, 2026 at 3:51 pm #18055072

raffaellaM

Hello, thank you, I tried clicking around and it looks solved!
What caused the issue? Just to know if it's something I can avoid in the future...

Regarding downgrading WPML SEO to 2.1.1, I think I will do it, but I just want to be sure of the best way to do it... once I download the plugin, I can add it directly as a new plugin and it will substitute the old one? Or should I first deactivate the one I have now?

Thanks and have a great weekend

May 25, 2026 at 7:33 am #18057365

Carlos Rojas
Supporter

Hi there,
I'm glad to hear that the issue is solved.

1.- The problem lies in the rewrite rules on the Italian front end.
With a regular theme, they include the translated taxonomy slugs:

[genere/([^/]+)/feed/(feed|rdf|rss|rss2|atom)/?$] => index.php?pa_genre=$matches[1]&feed=$matches[2]
    [genere/([^/]+)/(feed|rdf|rss|rss2|atom)/?$] => index.php?pa_genre=$matches[1]&feed=$matches[2]
    [genere/([^/]+)/embed/?$] => index.php?pa_genre=$matches[1]&embed=true
    [genere/([^/]+)/page/?([0-9]{1,})/?$] => index.php?pa_genre=$matches[1]&paged=$matches[2]
    [genere/([^/]+)/?$] => index.php?pa_genre=$matches[1]
    [tipo-disco/([^/]+)/feed/(feed|rdf|rss|rss2|atom)/?$] => index.php?pa_vinyl-type=$matches[1]&feed=$matches[2]
    [tipo-disco/([^/]+)/(feed|rdf|rss|rss2|atom)/?$] => index.php?pa_vinyl-type=$matches[1]&feed=$matches[2]
    [tipo-disco/([^/]+)/embed/?$] => index.php?pa_vinyl-type=$matches[1]&embed=true
    [tipo-disco/([^/]+)/page/?([0-9]{1,})/?$] => index.php?pa_vinyl-type=$matches[1]&paged=$matches[2]
    [tipo-disco/([^/]+)/?$] => index.php?pa_vinyl-type=$matches[1]
    [disco-anno/([^/]+)/feed/(feed|rdf|rss|rss2|atom)/?$] => index.php?pa_vinyl-year=$matches[1]&feed=$matches[2]
    [disco-anno/([^/]+)/(feed|rdf|rss|rss2|atom)/?$] => index.php?pa_vinyl-year=$matches[1]&feed=$matches[2]
    [disco-anno/([^/]+)/embed/?$] => index.php?pa_vinyl-year=$matches[1]&embed=true
    [disco-anno/([^/]+)/page/?([0-9]{1,})/?$] => index.php?pa_vinyl-year=$matches[1]&paged=$matches[2]
    [disco-anno/([^/]+)/?$] => index.php?pa_vinyl-year=$matches[1]

With Astra they have the default language slugs:

[genre/([^/]+)/feed/(feed|rdf|rss|rss2|atom)/?$] => index.php?pa_genre=$matches[1]&feed=$matches[2]
    [genre/([^/]+)/(feed|rdf|rss|rss2|atom)/?$] => index.php?pa_genre=$matches[1]&feed=$matches[2]
    [genre/([^/]+)/embed/?$] => index.php?pa_genre=$matches[1]&embed=true
    [genre/([^/]+)/page/?([0-9]{1,})/?$] => index.php?pa_genre=$matches[1]&paged=$matches[2]
    [genre/([^/]+)/?$] => index.php?pa_genre=$matches[1]
    [vinyl-type/([^/]+)/feed/(feed|rdf|rss|rss2|atom)/?$] => index.php?pa_vinyl-type=$matches[1]&feed=$matches[2]
    [vinyl-type/([^/]+)/(feed|rdf|rss|rss2|atom)/?$] => index.php?pa_vinyl-type=$matches[1]&feed=$matches[2]
    [vinyl-type/([^/]+)/embed/?$] => index.php?pa_vinyl-type=$matches[1]&embed=true
    [vinyl-type/([^/]+)/page/?([0-9]{1,})/?$] => index.php?pa_vinyl-type=$matches[1]&paged=$matches[2]
    [vinyl-type/([^/]+)/?$] => index.php?pa_vinyl-type=$matches[1]
    [vinyl-year/([^/]+)/feed/(feed|rdf|rss|rss2|atom)/?$] => index.php?pa_vinyl-year=$matches[1]&feed=$matches[2]
    [vinyl-year/([^/]+)/(feed|rdf|rss|rss2|atom)/?$] => index.php?pa_vinyl-year=$matches[1]&feed=$matches[2]
    [vinyl-year/([^/]+)/embed/?$] => index.php?pa_vinyl-year=$matches[1]&embed=true
    [vinyl-year/([^/]+)/page/?([0-9]{1,})/?$] => index.php?pa_vinyl-year=$matches[1]&paged=$matches[2]
    [vinyl-year/([^/]+)/?$] => index.php?pa_vinyl-year=$matches[1]

2.- To downgrade Yoast SEO you can follow these steps:
- Create a full site backup
- Go to Plugins -> Deactivate Yoast for a moment
- Connect to the site via FTP in wp-content/plugins folder and remove the Yoast folder
- Upload the early Yoast version folder
- Go to Plugins -> Activate the early version

Best regards!

May 27, 2026 at 11:13 am #18063280

raffaellaM

Hi,
by chance while browsing my Italian website I just noticed another issue that might be tied to the GENERE translation issue (I am not sure though):

I use the "Filter Everything" plugin; the filters work fine in English, but in the translated version of the website they behave weird.

For example if I go to hidden link and click on a GENERE option (for example DJ Style), nothing happens.

If I start by clicking the Year option, then the Genre option also works together.

On the English version of the website, the filters work well irrespective of the order and whether clicked alone or in combination.

Also, I just want to forward you Astra's comments, if useful for your developers.

Thanks again!

Raffaella

--

ASTRA REPLY:

Regarding the root cause WPML described: we reviewed every hook and filter in both Astra and Astra Pro. Astra has no code that touches WooCommerce product attribute taxonomy registration, slug filtering, or rewrite rules at runtime. The only relevant code is in Astra Pro's activation handler, which calls flush_rewrite_rules() when the plugin is first activated or updated.

This is a known WordPress limitation: when any plugin flushes rewrite rules during its activation hook, WPML's translated slug registrations have not fired yet (they run on init, which does not run during plugin activation). This means the stored rewrite rules briefly contain only the default language slugs. On the next regular page load, WPML re-registers the translated slugs, but WordPress may still serve the cached rules from the database.

The fix is simple: go to Settings → Permalinks → Save Changes after any Astra or Astra Pro activation or update. This triggers a fresh rewrite rebuild on a normal WordPress request with WPML's init hooks active, which writes the correct translated slugs into the rules. This also explains why switching themes and back resolved it; it causes the same admin-triggered rewrite flush.

This is not a bug in Astra's code; it is a standard consequence of WordPress's activation timing. If WPML would like a code-level improvement, the recommendation would be for them to hook into astra_addon_activate to schedule their own rewrite flush on the next normal page load.

May 27, 2026 at 11:30 am #18063377

Carlos Rojas
Supporter

Hi Raffaella,
Thank you very much for sharing the Astra reply. I just forwarded it to our 2nd-tier specialists for further analysis.

Regarding the filter issue, I kindly ask you to open a new ticket to treat it independently from the original issue described here. That way, we will be following our forum policy of solving one issue per ticket.

May 27, 2026 at 1:23 pm #18063847

raffaellaM

Thank you!

May 28, 2026 at 11:51 am #18066377

Carlos Rojas
Supporter

Hi Raffaella,

After applying the workaround recommended, re-save the permalinks while in the default language in the back end, and the problem is fixed.

Best regards,
Carlos