WPML switch backend language on language switch
Sinds wp 4.7 wordt de backend taal bepaald door de door de gebruiker ingestelde taal in het profiel. Bij het gebruik van WPML, als je de taalinstelling wijzigt voor de post-, page taal, verandert de backend taal niet mee. De code hieronder past dit aan het past de website taal (instelligen -> algemeen) aan als je de wpml taal aanpast.
add_action('init', 'vh39hcr9_wpml_switch_user_lang', 20); function vh39hcr9_wpml_switch_user_lang() { $languages = apply_filters( 'wpml_active_languages', NULL ); foreach($languages as $l) { if ($l['active']) { $locale = $l['default_locale']; break; } } switch_to_locale( $locale ); }
Bij init haal de actieve WPML taal op en verander de website taal naar die taal.
wp 4.7 en hoger:
Bovenstaande werkt goed in wp 4.0.. sinds wp 4.7 zou je ook de taal in het gebruikersprofiel moeten aanpassen. Efficiënter is de gebruikers instelling leeg te maken. Dan wordt de standaard taal gebruikt die de actieve WPML setting overneemt.
add_action('init', 'vh39hcr9_wpml_switch_user_lang', 20); function vh39hcr9_wpml_switch_user_lang() { $user_id = get_current_user_id(); update_user_meta( $user_id, 'locale', null ); $languages = apply_filters( 'wpml_active_languages', NULL ); foreach($languages as $l) { if ($l['active']) { $locale = $l['default_locale']; break; } } switch_to_locale( $locale ); }