Problem: The client is experiencing issues with the WPML language switcher not appearing correctly in the menu when using a custom theme. The switcher either does not show up at all when set to display flags only, or appears messy when set to display names. Solution: We determined that the issue is related to how the custom theme handles the header/menu output, which affects the display of the WPML language switcher. Since this behavior is controlled by the theme and not WPML, we recommend contacting the theme author to adjust the header template or custom menu walker to support the WPML menu language switcher output properly. As a temporary workaround, you can add custom CSS to visually include the flags. You can do this by navigating to your WordPress admin, going to Appearance → Customize → Additional CSS, and adding the following code:
Please note, this solution may not work if the switcher is configured as a dropdown, as dropdowns are usually controlled by the theme’s JavaScript and custom markup.
If this solution does not resolve your issue or seems 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.