Skip to content

Multilingual Support (WPML & Polylang)

WB Member Wiki supports multilingual sites using WPML or Polylang. Wiki pages and taxonomies can be translated, and the wiki dashboard URL automatically switches to the correct language.

Plugin Support level
WPML (v4.0+) Full - content translation + URL switching
Polylang (v3.0+) Full - content translation + URL switching

WPML patches WordPress’s get_permalink() globally, so WB Member Wiki’s URLs switch language automatically once WPML is configured.

WB Member Wiki ships a wpml-config.xml file in the plugin root. WPML reads this automatically - no manual configuration required. It declares:

  • wiki_page CPT as translatable
  • wiki_category and wiki_tag taxonomies as translatable
  • Custom fields: _wbmw_revision_note (translate), metadata fields (copy)
  1. Go to Wiki Pages > All Wiki Pages in WordPress admin
  2. Use the WPML language column to add translations for each page
  3. Translate category and tag terms via Taxonomy Translation in WPML
  1. Translate the WordPress page that contains the [member-wiki-dashboard] shortcode
  2. WPML automatically routes the dashboard URL to the correct language

That’s all. WPML handles URL routing for wiki pages and the dashboard page without any additional configuration.


Polylang does not patch get_permalink() globally. WB Member Wiki includes a Polylang integration that intercepts the dashboard URL and swaps it for the translated version.

Configure your site languages in Polylang > Languages as you normally would.

Step 2: Register wiki content for translation

Section titled “Step 2: Register wiki content for translation”

In Polylang > Settings:

  1. Under Post Types, check Wiki Pages
  2. Under Taxonomies, check Wiki Category and Wiki Tag
  1. Go to Wiki Pages > All Wiki Pages
  2. Use the Polylang language column to add translations
  3. Translate category and tag terms under their respective taxonomy screens
  1. Translate the WordPress page containing [member-wiki-dashboard] via the Polylang language switcher on the page edit screen
  2. Polylang links the translations together

Once the translated dashboard page exists, WB Member Wiki automatically detects the current language and routes the dashboard link to the correct translated page.


WB Member Wiki uses the wbmw_dashboard_url filter to return the correct dashboard URL:

  • WPML - no intervention needed; get_permalink() returns the translated URL already
  • Polylang - the plugin calls pll_current_language() and pll_get_post() to look up the translated page ID, then returns its permalink

This means all links to the wiki dashboard (in navigation, BuddyPress tabs, etc.) automatically reflect the active language.


Each language gets its own wiki page post. Translators can work on each language version independently in the WordPress editor or via the WPML/Polylang translation editor.

Wiki links ([[Page Title]]) resolve against page titles in all languages. If you write [[Climate Change]] in an English page, and the French translation of that page is titled “Changement Climatique”, use [[Changement Climatique]] in French pages for proper resolution.

Translate category and tag terms independently for each language. Terms are language-specific - the English “Science & Technology” and French “Sciences et technologies” are separate terms linked via WPML/Polylang.


Do I need to configure anything in WB Member Wiki settings? No. The multilingual integration activates automatically when WPML or Polylang is detected. No plugin-specific configuration is needed.

Does standalone mode (no community platform) work with multilingual? Yes. The multilingual integration is independent of the platform integration (BuddyPress, PeepSo, standalone).

Watchlist emails - do they send in the user’s language? Not automatically. Watchlist email content is not currently translated, so the text uses the site’s default language. To customize the email, override its template by copying templates/email-watchlist-notification.php to your-theme/wb-member-wiki/email-watchlist-notification.php. The subject line is a standard translatable string handled through your site’s .mo translations.

Can I use a different approach for the dashboard URL? Yes. Use the wbmw_dashboard_url filter to return any URL:

add_filter( 'wbmw_dashboard_url', function( $url ) {
// Custom multilingual URL logic
$lang = apply_filters( 'wpml_current_language', null );
if ( 'fr' === $lang ) {
return 'https://example.com/fr/wiki/';
}
return $url;
} );

Does the importer (MediaWiki, Notion, Confluence) support multilingual? Imported pages are created in the default language. You can then add translations through WPML or Polylang’s normal translation workflow after importing.