Latest news

After a couple of months, the research and development around the xili-language trilogy is gradually resuming. The offer of plugins to create multilingual WordPress sites is plethoric but only two use the taxonomic approach. On this site based on 2014-xili, multilingual child theme of Twenty Fourteen, remain the main documents concerning the trilogy. Following the WordCamp Europe Paris in June 2017, Twenty Seventeen’s site based on 2017-xili , will contain the Latest news and updates.

xili-language version 2.21.0 shipped

The plugin Xili-language (heart of his trilogy) continues its development …

Widget “language list” or “language selector”

After the period devoted to the management of menus and their style with image (flag), this is the appropriate time to review widget “language list” or language selector (switcher).
Adding pictures is based on an integrated style sheet in the header if and only if this widget is active. (thanks to the is_widget_active function). As with nav menus, the theme must support (add_theme_support) the “custom_xili_flag” introduced since Xili-language version 2.15.

Widget inside twenty sixteen
Widget inside twenty sixteen

Three possible styles: single text (as before), image + text and image / flag alone (in compact horizontal list).
Images/pictures can have three origins:
– Those provided by the developer of the theme (so in a theme subfolder and reported at the theme setup)
– Those introduced as nav menu image in the catalog media associated with a language,
– And in case of absence, for some images contained in the plugin.

Settings of style in widget Language list
Settings of style in widget Language list

Importing multilingual datas of a website previously controlled by Polylang plugin

A few years after the birth of Xili-language, Polylang also chosen the way of taxonomy “language” to organize posts according to their language. The slightly different implementation of this taxonomy is discussed here. This approach retains the posts (article, page) to their initial state. In a decidedly simple approach with an effective ergonomics, its success demonstrates that it meets expectations in a very competitive multilingual context. But as for music, cars, the webmaster / developer may want different or complementary qualities, that is why, apart from other reasons, the trilogy Xili-language continuing its development. If, during the life of a website, the need appears, Xili-language 2.1+ version is able to detect the presence of previous Polylang and recover data to continue the multilingual architecture with the trilogy (Xili-tidy- tags, xili-dictionary). Caution, in the list of extensions, just disable Polylang without removing it because otherwise, for lack of option provided for this purpose by the author, all specific data Polylang will be deleted. Once, Xili-language active, a semi-automatic multi-step process is fired … a specially dedicated post is published…

Widgets visibility option under the current language

widget visibility
widget visibility

If the option is activated (5th tab), the webmaster will see in the interface of each widget, a group of 2 dropdown menus to decide whether this widget should appear or not.

various fixes

Each version is an opportunity to fixe and optimize the code in particular by integrating functions appeared since WP 4.1. or recent versions of javascript.

improved code and algorithms

Add filters to customize the implementation style images / flags in the language selector.
Added new theme twenty sixteen in the list of bundled themes that came with WordPress.
Intermediate versions before publication on the WP repository are available on GitHub

Importing multilingual datas of a website previously controlled by Polylang plugin


VERY IMPORTANT: change of plugins must be preceded by IMPERATIVELY a backup of the database.

Performing backups has been very helpful in the phases of development of this new feature to Xili-language 2.21+ and allowed at any time to return to an earlier phase.

Although Xili-language taxonomy and that of Polylang have the same name, there are differences explained in this article.

This post concerns webmasters with a good level of knowledge of WordPress … and those who know the “CMS” reasons behind to move from Polylang to Xili-language (2.21+).


Installation WITHOUT ACTIVATION  to the 3 xili-language plugins, Xili-tidy-tags and Xili-dictionary. Either via FTP or through the list of plugins.

Open multiple tabs in your browser: two on the list of extensions, one on the visitor site side and one on the dashboard.

Desactivate Polylang

Caution, in the list of extensions, you must  only desactivate Polylang without deleting it because otherwise, for lack of option provided for this purpose by the author, all specific data Polylang will be deleted.

desactivate Polylang
desactivate Polylang
Activate xili-language
Activate xili-language

Once, Xili-language activated, a semi-automatic multi-step process is set up and opens the welcome page:

Welcome screen after activation
Welcome screen after activation

Once in the page settings, it is seen that the elements left behind by Polylang are detected and processed for multilingual management now by xili-language:

before regeneration
before regeneration

Regeneration multilingual elements

The regeneration of links between posts made, the message says to go to the Settings for Experts tab.

regeneration done
regeneration done

Because the next step is taxonomies, go to the previously prepared browser tab where there is the list of extensions and enable Xili-tidy-tags:

Activate xili-tidy-tags
Activate xili-tidy-tags

Going back to the settings page Expert Xili-language and the window (meta-box) “special actions and parameters”:

Start taxonomy groups recovering
Start taxonomy groups recovering

Operations related to taxonomies relate Tags (post_tag) primarily:

Tags list and languages
Tags list and languages

now screen xili-tidy-tags assign

xili-tidy-tags assigning done
xili-tidy-tags assigning done

They prepare the items for categories that are managed in translation mode (without cloning) by xili-language and Xili-dictionary. (see Article …)

To clean the WP base before removing the Polylang extension, you have to go to the next step (this can be done later):

To launch DB cleaning process
To launch DB cleaning process
Ready to delete plugin files
Ready to delete plugin files



It goes without saying that now Polylang should not be reactivated. To go back: use the backups.

The Polylang files are deletable via the page showing list of extensions or better via FTP. Xili-language, however, has made so renaming the file
 uninstall.php to uninstall_XL_desactived.php
so it does not destroy particular taxonomy “language” in the process “deleting” managed by  WP.


What’s new in Xili-language version 2.20?

First: Xili-language compatibility is verified with WordPress 4.3 “Billie”.
Well known by donors, contributors, the functions related to the themes present in permalinks 201x-Xili child bundled themes are now included in the plugin itself.
It is therefore possible for all situations respecting the rules kernel (core) of WP to have permalinks integration with current language at the beginning of the URI instead ?lang = fr_fr at end of URI for example.
Note also that the language slug can be a shortcut to its ISO code but also an alias at your convenience associated with the activity of the website or its geography.
Possible to do tests with newest theme twenty sixteen (and his multilingual child theme).
Other fixes and code improvements continued to grow especially for parties of sometimes more than 5 years old. 😉
Note: for now, given the sophistication of settings, lack of filter, the approach php / javascript, the customizer is not active to create special navigation menus with insertion points (use page Appearance/Menus).
Thanks for your returns

xili-language updated in version 2.19

xili-language is updated in version 2.19 to improve features and to be ready with WP 4.3-beta

  • Admin Side
    add link in post edit to view other posts during translation,
    pre-tests with WP 4.3-beta1: fixes for (new) WP Theme Customizer Menus

  • Authoring
    add shortcode as [linked-post-in lang="fr_fr"]Voir cet article

  • Theme’s developers
    ready to translate theme_mob values (like in config.xml) see multilingual child theme twentyfifteen-xili example in github

xili-language updated in version 2.18

xili-language version includes fixes and integration of optional plugin xl-bbp-addon (used with multilingual bbPress)

  • integration of xl-bbp-addon (no more a plugin),
  • fixes/adds ‘menu-item-has-children’ class in menus built by selector (as used in twentyfourteen / twentyfifteen theme css for sub-menu on left sidebar to show small arrow),
  • fixes propagation options,
  • better management of dashboard language and user profil (thanks to Renoir),
  • selected value of languages in general settings set to get_option(‘WPLANG’) (and not filtered locale).


xili-language version 2.17.x for newest WordPress 4.2

The WordPress Core team says : We’ve pushed the scheduled release (WP 4.2) date by a day due to the 4.1.2 security release that went out on Tuesday morning.

xili-language version 2.17.x is shipped with some improvements:

  • possible to choose active widgets (5th tab in settings) like the newest xili-category,
  • better compatibility with plugin WP JSON REST API v. 1.2.1 currently in dev.
  • (security) fixes…

Soon WP 4.2 : Maintenance update of trilogy xili-language !

WordPress 4.2-beta2 is shipped since few days. The three plugins of the xili-language trilogy must be tested. Some improvements are added. More details in each repository (“Changelog” tab).

  • xili-language : version 2.16.4
    – custom_xili_flag for admin side (admin side flag are uploadable – no need to take attention to name or type (.png, .jpg, gif)
    – custom_xili_flag (frontend): if not ready or declared in customised theme, search in subfolder theme/images/flags (only .png)
    – better selection of active widgets (new Categories widget with good counting if language selection must be enabled in 5th tab)
  • xili-tidy-tags : version 1.10.2 (Updated datatables js & css)
  • xili-dictionary : version 2.10.3 (Updated datatables js css – used in interactive table of tools)
    – can import msgid of get_the_archive_title (introduced in WP 4.1)
    – improves adding context only after draft state
    – now able to use flags available in Medias Library (if xili-language is active)

Notes: images set as flag can be png et jpg and also gif – not necessary to also format the name of the file !

As usual, contributors are welcome to improve documentations and more…

xili-language version 2.16.3 : maintenance and ready for 2.17

Some fixes of Warning or Notice in rare situations.
A new Widget category class (with new Walker) for adapted numbering according current language. This new Widget must be registered by webmaster in his theme via few line of code. Because it is a new widget named ©xili Widget, you must set it via the Appearance/Widgets settings page (and remove default Categories widget) 😉

// ...inside function twentyfifteen_xilidev_setup - at end of condition if xili-language exists (to avoid error if desactivated)
add_action( 'widgets_init', 'twentyfifteen_xili_add_widgets' );
// ...
add_action( 'after_setup_theme', 'twentyfifteen_xilidev_setup', 11 );

function twentyfifteen_xili_add_widgets () {
    register_widget( 'xili_Widget_Categories' ); // in xili-language-widgets.php since 2.16.3

Widget “Archives” is improved (through filtering) to display only months with posts of target/displayed languages. It is recommended to reset cache by adding a post.