Home›Support›English Support›[Resolved] MENUS NOT VISIBLE IN WP-ADMIN and WPML REWRITE BASE / 404 ISSUE (SERVER-LEVEL EFFECT)
[Resolved] MENUS NOT VISIBLE IN WP-ADMIN and WPML REWRITE BASE / 404 ISSUE (SERVER-LEVEL EFFECT)
This thread is resolved. Here is a description of the problem and solution.
Problem: You might be facing two separate issues with WPML on your site. First, when WPML is enabled, no menus are visible in WP-Admin under Appearance → Menus, and the WPML Menu Sync hangs indefinitely. Second, enabling WPML and switching the language to /en/ causes WordPress to rewrite .htaccess with 'RewriteBase /en/' and route requests to /en/index.php, leading to broken REST API endpoints and intermittent 404 errors.
Solution: For the menu visibility issue, it appears to be related to the User Registration & Membership plugin, which includes flawed WPML compatibility code. You can resolve this by disabling a part of that plugin's code. Add the following to your site's functions.php or via a code snippet plugin:
This modification might affect the User Registration & Membership plugin, so it's advisable to contact their support for a more permanent solution. They should use the WPML developer API, specifically the wpml_permalink filter.
For the .htaccess rewrite issue, please provide more details by describing the problem again, so we can create a new support ticket to address it specifically.
Please note that the solutions provided might become outdated or may not directly apply to your case. If these steps do not resolve your issues, 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.
We are facing two separate but critical issues related to WPML on a long-running production site (santimassage.gr)
────────────────────────
1) WPML MENUS NOT VISIBLE IN WP-ADMIN
────────────────────────
Problem:
- When WPML is enabled, Appearance → Menus shows no menus at all.
- When WPML is disabled, all menus immediately appear and function correctly.
- This behaviour existed BEFORE any .htaccess locking or server-side changes.
- WPML Menu Sync hangs indefinitely and never completes.
Important facts:
- Menus clearly exist in the database (verified via wp-cli: wp menu list).
- The issue is not theme-related (Avada) and not server-related.
- This site has been using WPML for years with multiple menus and locations.
Conclusion:
WPML is preventing existing menus from being exposed in the wp-admin UI.
We suspect corrupted WPML menu translation data or a broken synchronization state.
We need:
- Guidance on how to safely repair or reset WPML menu translation data
- WITHOUT losing menu structure or rebuilding menus from scratch.
Problem:
- When WPML is enabled and a visitor switches language to /en/,
WordPress rewrites .htaccess with:
RewriteBase /en/
and routes requests to /en/index.php
- There is NO physical /en/ directory (language URLs are virtual).
- This causes REST API endpoints (/wp-json/, /wp-json/wp/v2/) to break
and results in intermittent server-level 404 errors.
Observations:
- Disabling WPML immediately stops this behaviour.
- Locking .htaccess (permissions 444) prevents the rewrite and stabilizes the site,
but this is only a workaround, not a proper fix.
We need:
- Confirmation whether this is a known WPML issue with
“Different languages in directories”
- Proper guidance on preventing RewriteBase from being rewritten to /en/
while keeping directory-based language URLs.
────────────────────────
Summary:
- Issue #1 (Menus) is independent and existed before any server workaround.
- Issue #2 (RewriteBase / 404) is triggered by WPML language switching.
- We need WPML-side solutions for both.
────────────────────────
- The site has been running WPML for years without issues.
- The problems started immediately after updating WPML Multilingual CMS (currently 4.8.6).
- No structural changes were made to WordPress installation, theme structure, or server configuration prior to the issue.
- WordPress version: 6.9.1
- PHP: 7.4.33
- Theme: Avada 7.14.2 + Child Theme
The problem lies with the User Registration & Membership plugin, which includes some flawed WPML compatibility code.
Please ensure to have a full website backup before proceeding.
You can fix this issue by disabling the relevant part of that plugin code by adding this code to your site (functions.php or via some code snippet plugin):
This could have some unwanted side effects on the User Registration & Membership plugin, though. It's best that you contact them and explain the situation. The problem is with this code in the file plugins/user-registration-pro/includes/functions-ur-core.php
Regarding the htaccess, can you please send a message describing it again? You can copy/paste what you've already shared. With that I can create a new ticket 🙂
I am sending you the message below for the Rewrite base issue / 404 server-level effect to open a new ticket.
WPML REWRITE BASE / 404 ISSUE (SERVER-LEVEL EFFECT)
────────────────────────
Problem:
- When WPML is enabled and a visitor switches language to /en/,
WordPress rewrites .htaccess with:
RewriteBase /en/
and routes requests to /en/index.php
- There is NO physical /en/ directory (language URLs are virtual).
- This causes REST API endpoints (/wp-json/, /wp-json/wp/v2/) to break
and results in intermittent server-level 404 errors.
Observations:
- Disabling WPML immediately stops this behaviour.
- Locking .htaccess (permissions 444) prevents the rewrite and stabilizes the site,
but this is only a workaround, not a proper fix. (For now, I kept it locked so the website can run)
We need:
- Confirmation whether this is a known WPML issue with
“Different languages in directories”
- Proper guidance on preventing RewriteBase from being rewritten to /en/
while keeping directory-based language URLs.
New threads created by Lucas Vidal de Andrade and linked to this one are listed below: