Este plugin no se ha probado con las últimas 3 versiones mayores de WordPress. Puede que ya no tenga soporte ni lo mantenga nadie, o puede que tenga problemas de compatibilidad cuando se usa con las versiones más recientes de WordPress.

WP Multilang


WP Multilang is a multilingual plugin for WordPress.

Translations of post types, taxonomies, meta fields, options, text fields in miltimedia files, menus, titles and text fields in widgets.

Features of the plugin WP Multilang

  • 100% free.
  • Translation at PHP.
  • Compatible with REST.
  • Support configuration for translate multidimensional arrays in options, meta fields, post content.
  • Support multisite.
  • Support WordPress in sub-folder.
  • Separate menu items, posts, terms, widgets, comments per language.
  • Many filters for dynamic applying translation settings.
  • No duplicate posts, terms, menus, widgets.
  • No sub-domain for each language version.
  • Ninguna tabla adicional en la base de datos.
  • Possibility set many languages with one localization. For example, for localization in the region.
  • Possibility to set custom locale for html(If installed locale is en_US, you can set locale like: en, en-UK, en-AU etc. Without installation another localization)
  • Possibility for add new languages for any user with capability manage_options.
  • Exist the role «Translator» for editing posts, terms. It can not publish or delete.
  • No hay límites por idiomas o por posibilidades.

WP Multilang compatible with plugins

  • ACF, ACF Pro
  • WooCommerce
  • WooCommerce Customizer
  • Gutenberg
  • Yoast Seo
  • Contact Form 7 (added mail tag [_language] for send user language in mail)
  • WPBakery Visual Composer
  • Page Builder by SiteOrigin
  • NextGEN Gallery
  • All in One SEO Pack
  • MailChimp for WordPress
  • Newsletter
  • Maps Builder
  • Max Mega Menu
  • MasterSlider
  • WP-PageNavi
  • BuddyPress
  • Meta Slider
  • TablePress
  • Download Monitor (Redefine templates for links in your theme and translate link texts)
  • Better Search
  • Rank Math SEO (thanks for @pratikmts)

Manage translation settings via json.

Add in the root of your theme or plugin file wpm-config.json.

Sample configurations can be viewed in config files in folder ‘configs’ in root the plugin.

Configuration is updated after switching theme, enable or update any plugins.

The plugin has filters for dynamic application configuration for translate.

For turn off translation, set null into the desired configuration.
For example, you must turn off translation for a post type post.
There are two ways:

  1. In json.
    Create in root of a theme or a plugin file wpm-config.json with:
    «post_types»: {
    «post»: null

  2. Through the filter.
    Add in functions.php
    add_filter( ‘wpm_post_post_config’, ‘__return_null’ );

To enable translation pass an empty array in php array() or empty object in json {}.

Supports translation multidimensional array of options, meta fields and post_content.
Supports the removal of established localizations.
Supports translation via GET parameter. Add in the GET parameter lang code desired language.
Supports clean database of translations when removing the plugin. Translations are only removed from the built-in tables.
Supports import term translations from qTranslate(by Soft79).
Supports automatically redirect to the user’s browser language, if he visits for the first time.

Ideal for developers.

For display language switcher in any place add the code to your template if ( function_exists ( 'wpm_language_switcher' ) ) wpm_language_switcher ();
Function accepts two parameters:
$type – ‘list’, ‘dropdown’, ‘select’. Default – ‘list’.
$show – ‘flag’, ‘name’, ‘both’. Default – ‘both’.

O usando el shortcode wpm_lang_switcher. Acepta dos parámetros no necesarios ‘tipo’ y ‘mostrar’.

Available features for translation:
wpm_translate_url( $url, $language = » ); – translate url
wpm_translate_string( $string, $language = » ); – translate multilingual string
wpm_translate_value( $value, $language = » ); – translate multidimensional array with multilingual strings

Update translation occurs at PHP. Therefore plugin has high adaptability, compatibility and easily integrates with other plugins. This is what distinguishes it among similar.

Available translation html tags by JS for strings what do not have WP filters before output.

Add your tags in config:

"admin_html_tags": {
    "admin_screen_id": {
      "attribute": [

admin_screen_id – admin screen id.
attribute – attribute what need to translate. Available ‘text’ – for translate text node, ‘value’ – for translate form values. Or other tag attribute, like ‘title’, ‘alt’.
selector – css selector for search needed tag. Each selector is a new array item.

If You need to add translation for multidimentional array for repeated elements You can use custom tag ‘wpm_each’ for set config to each element in array.
Example, add config for each item ‘title’ in custom post field array:

"post_fields": {
    "custom_field": {
      "wpm_each": {
        "title": {}

For set translation uses the syntax:
[:en]Donec vitae orci sed dolor[:de]Cras risus ipsum faucibus ut[:]

Added shortcode for translate text in any place:
[wpm_translate][:en]Donec vitae orci sed dolor[:de]Cras risus ipsum faucibus ut[:][wpm_translate]

If You translate text in established language, add lang parameter:
[wpm_translate lang=»de»][:en]Donec vitae orci sed dolor[:de]Cras risus ipsum faucibus ut[:][wpm_translate]

Support translating from syntax qTranslate, qTranslate-X, WPGlobus etc.

Compatible with REST-API.
Support transfer the required translation through option lang in the GET request to REST.
Has the ability to keep recording the target language through the transmission parameter lang in the request.

Migración de qTranslate-X

  1. Antes de instalar/desinstalar, haz una copia de seguridad de la base de datos.
  2. Desactiva qTranslate-X.
  3. Instala y activa WP Multilang.
  4. Create in root of your theme file ‘wpm-config.json’.
  5. Add all needed post types, taxonomies, options, fields to ‘wpm-config.json’. Setting from qTranslate-X not importing.
  6. Importar nombres de términos de qTranslate.
  7. Comprueba que todo está bien.
  8. Si todo está bien, elimina qTranslate-X. Si no, haz capturas de pantalla de los errores, restaura la base de datos desde la copia de seguridad y añade el problema en el soporte con las capturas de pantalla y la descripción de los errores.


Do not support different slug for each language(Yet).

Not compatible with:
– WP Maintenance

Problemas conocidos

Function ‘get_page_by_title’ not working, because in title field are stored titles for all languages. Use function ‘wpm_get_page_by_title( $title )’ as solution.

NOTA: Debido a que los plugins tienen diferentes formas de almacenar datos, WP Multilang no es compatible con todos los plugins listos para usar (en su mayoría constructores de páginas). Esto puede provocar que los textos no se puedan traducir o las traducciones no se guarden. La mayoría de estos problemas se pueden resolver usando las opciones de integración (wpm-config.json o filtros) de WP Multilang.

Por favor, prueba WP Multilang en un entorno de pruebas antes de activarlo en un sitio existente en producción y ¡haz siempre una copia de seguridad antes de activarlo!


  • Settings page
  • Post list page
  • Taxonomy list page
  • Taxonomy edit page
  • Post edit page


  1. Upload the plugin files to the /wp-content/plugins/wp-multilang directory, or install the plugin through the WordPress plugins screen directly.
  2. Activate the plugin through the ‘Plugins’ screen in WordPress.
  3. Adjust languages on WP Multilang Settings page.


I add new translation, but it rewrite another translation on different language.

If you have opened several browser tabs for editing this post in different languages, translation will be saved for the language that you opened last.


1 de mayo de 2021
I have use it on my website which runs Flatsome theme 3.13.3/WP 5.7.1/WC 5.2.2/PHP 7.4.18/MySQL Objective was the manual translation of menus/categories/Attribute names/UX Block content from English (Default Lang.) to Greek. I haven't publish the multilang website yet, but on several tests I did my self everything runs as it should. Settings section of the plugin, have few options (positive for me) and very understandable. For translations on ux-blocks I have used wp classic text editor to make the translation, which was the easiest and safe choice for me. Maybe if I was using flatsome ux-block visual editor I would have same result. As I sell technology products I didn't translate descriptions (basically on my case descr. is referring to technical specs) as in greek technology terms are not very understandable to consumers but on product pages which I have specification section I have translate attribute names ex. CPU /Memory... with out any problem. I am not a professional developer, but I have some basic knowledge of coding which as I said previously I used only on ux-blocks which I did the translation using wp classic editor. Bottom-end after trying many of the popular translate tools, my jobs was successfully done with Wp-Multilang. I believe the developers deserve a boost so I will donate. 🙂
24 de abril de 2021
Nach notwendigen Updates von Plugins und Upgrade auf php 7.2 meines zweisprachigen (qtranslate) Shops mit über tausend Artikel im April 2021 konnte ich in woocommerce keine Produkte mehr fehlerfrei anlegen oder bearbeiten, hatte Doppelposts in der Beschreibung etc. Nach Stunden der Fehlersuche half folgendes: Alle qtranslate Plugins deaktivert, Multilang installiert, alten Sprachmenu Button entfernt und neuen hinzugefügt, Häckchen gesetzt - und alles funktionierte sofort wieder einwandfrei. Alle Artikel sichtbar, zweisprachig anwählbar :-)) Bin begeistert und erleichtert. Ich lege alle Produkte und Artikel zweisprachig an, brauche daher kein Tool das mir die Produkttexte übersetzt, das mache ich selber :-))
30 de marzo de 2021
Not good when deactive plugin get strange code not remove with plugin
19 de enero de 2021
Відмінний плагін, дякую, хотілося б побачити оновлення цього плагіна. Ще раз подяка розробнику --------------------------------------- Отличный плагин, спасибо, хотелось бы увидеть обновление этого плагина. Еще раз спасибо разработчику Ставллю 5 звезд
7 de enero de 2021
Great, Clear, Understanding and free plugin! Keep Going! 🙂
26 de noviembre de 2020
This plugin works great, I tested it on WordPress 5.5.3, with my custom developed theme and my custom Gutenberg blocks. It just does not give confidence, when you see when it was last updated. If it does not have major issues, you can just change plugin and readme file and declare it compatible with 5.5.3.
Leer todas las 81 reseñas

Colaboradores y desarrolladores

«WP Multilang» es un software de código abierto. Las siguientes personas han colaborado con este plugin.


«WP Multilang» ha sido traducido a 7 idiomas locales. Gracias a los traductores por sus contribuciones.

Traduce «WP Multilang» a tu idioma.

¿Interesado en el desarrollo?

Revisa el código , echa un vistazo al repositorio SVN o suscríbete al registro de desarrollo por RSS.

Registro de cambios


  • removed support old version of ACF lower 5.0


  • added support for Rank Math SEO (thanks for @pratikmts)
  • optimized speed
  • deleted support for old translate syntax
  • other fixes and improvements


  • fixed compatibility with WordPress 5.0
  • fixed compatibility with AIOSP


  • added donate link to readme.txt
  • fix display language name
  • fix SiteOrigin Builder compatibility
  • fix fatal error when a plugin is disabled
  • fix translate REST requests in admin


  • fixed Gutenberg compatibility
  • fixed translation WC coupons


  • se agregó el encabezado «no-cache» del administrador en el cambio de idioma
  • added WC coupon for translating
  • fixed compatibility with SiteOrigin
  • se corrigió un error de redireccionamiento de http a https
  • fixed styles


  • fix translate menu
  • fix translating
  • fix saving metabox
  • fix set home url in subfolder


  • added shortcode for display language switcher
  • add filters for set json config files for integration
  • fixed checking for ml strings
  • fixed compatibility with Gutenberg
  • fixed checking for JSON strings
  • fixed regex for ml strings


  • fixed escaping text. Have error on some sites.
  • fixed ACF PRO menu integration. Have error on ACFv4.


  • added alternate locale for opengraph in YOAST SEO
  • added setting default translation
  • fixed PHP notice in YOAST sitemap
  • fixed compatibility with Gutenberg
  • fixed compatibility with Buddypress
  • fixed translate ‘attr_escape’
  • fixed adding custom fields to menu items

Todo el registro de cambios está disponible en GitHub.