Hätte dazu deine Idee. Installiere dieses Plugin: https://de.wordpress.org/plugins/geoip-detect/ - damit hast Du die Funktion der Geolokalisierung in deinem Projekt. Beachte die Hinweise zu den verfügbaren Datenbanken in dem Plugin.
Wenn Du das installiert hast, könnte man in dem Sprachwechsel die für ein bestimmtes Land nicht gewünschte Sprache per CSS ausblenden. Das hier müsste in die functions.php vom Child-Theme oder ein individuelles Plugin:
add_filter( 'body_class','my_body_classes' );
function my_body_classes( $classes ) {
$record = geoip_detect2_get_info_from_current_ip();
if( !empty($record->country->isoCode) ) {
$classes[] = 'country-iso-'.strtolower($record->country->isoCode);
}
return $classes;
}
Und im CSS dann über die so erzeugte Klasse am body nur die Sprachen im Sprachsel einblenden die gewünscht sind:
body.country-iso-us .lang-item { display: none }
body.country-iso-us .lang-item-en { display: block }
Habe das jetzt nicht mit deinem Theme getestet, ggfs. musst Du das CSS an deines anpassen.
Diese Idee hat nur einen Nachteil: die andere Sprache könnte natürlich weiterhin per Direktlink aufgerufen werden. Wenn man das verhindern will, könnte man ggfs. in Polylang die automatische Erkennung der Sprache des Besuchers verwenden. Oder man nimmt einen Hammer ähnlich diesem Ansatz hier: https://gist.github.com/vielhuber/7589…162df2e497fb856