Dieser Artikel stellt vor, wie man mehrsprachig kompatible Seiten in WordPress PHP implementiert.
Wenn Sie Plugins installieren, werden alle Seiten mehrsprachig. Ich habe es auch versucht, aber es wurde mühsam und ich habe es gelöscht. Ich möchte es in PHP so machen: wenn Japan, dieses HTML, wenn englischsprachige Länder, dieses HTML. Außerdem, wenn es nicht viele Seiten gibt, die mehrsprachig gemacht werden sollen, und es nur ein paar Artikel sind, möchte ich besonders keine Plugins installieren.
Also hier ist der Code.
$exp = function ($v) { return $v; };
function GetIP()
{
foreach (array('HTTP_CLIENT_IP', 'HTTP_X_FORWARDED_FOR', 'HTTP_X_FORWARDED', 'HTTP_X_CLUSTER_CLIENT_IP', 'HTTP_FORWARDED_FOR', 'HTTP_FORWARDED', 'REMOTE_ADDR') as $key)
{
if (array_key_exists($key, $_SERVER) === true)
{
foreach (array_map('trim', explode(',', $_SERVER[$key])) as $ip)
{
if (filter_var($ip, FILTER_VALIDATE_IP, FILTER_FLAG_NO_PRIV_RANGE | FILTER_FLAG_NO_RES_RANGE) !== false)
{
return $ip;
}
}
}
}
}
function multilanguageaboutme($the_content) {
// if (is_single() && in_category(array('プログラミング'))) {
if ( !is_page() && get_the_ID()=='10') {
$return = "";
$return .= $the_content;
global $exp ;
if ( shell_exec("curl \"https://ipapi.co/{$exp(GetIP())}/json/\" | python -c 'import json,sys;print json.load(sys.stdin)[\"country_name\"]' | perl -pe \"chomp\"") == "Japan" ){
// echo "Japan" ;
$return .= <<<'Japanese'
<p>
Schön Sie kennenzulernen. Ich bin Fumiya.
</p>
Japanese;
} else {
// echo "Not Japan" ;
$return .= <<<'English'
<p>
Nice to meet you. I'm Fumiya.
</p>
English;
}
return $return;
} else {
$return = $the_content ;
return $return;
}
}
// enable/disable
add_filter('the_content','multilanguageaboutme');
Platzieren Sie diesen Code in functions.php oder irgendwo.
Wie Sie sehen können, identifiziert es anhand der IP-Adresse, welches Land es ist, und wenn der Rückgabewert japan ist, gibt es japanisches HTML zurück, andernfalls englisches.
Beim Zugriff über VPN

Beim Zugriff aus Japan

get_the_ID()==‘10’ ist die Post-ID. Lassen Sie uns nur den Titel für diesen Beitrag erstellen und den Körper leer lassen.
shell_exec("curl \"https://ipapi.co/{$exp(GetIP())}/json/\" | python -c 'import json,sys;print json.load(sys.stdin)[\"country_name\"]' | perl -pe \"chomp\"") ist etwas komplex, aber es führt nur einen externen Befehl aus.
Sie können es so viel tun, wie Sie möchten, nur mit PHP, aber da ich nur mit bash arbeite, empfange ich Ergebnisse von externen Befehlen. Jedenfalls ist die Anzahl der Zugriffe bekannt, und wenn es etwa Zehntausende sind, wird es überhaupt keine Belastung sein. Außerdem ist es ein Mietserver. Wenn Sie eine E-Mail erhalten, antworten Sie einfach.
Abschweifung
Übrigens habe ich gerade recherchiert und gelernt, dass es beim Erstellen mehrsprachiger Websites besser für SEO ist, URLs zu trennen. Anscheinend sagt Google das. Es ist auch nicht gut, JS oder Cookies zu verwenden, um zu verzweigen und die Anzeige zu ändern. Ich wusste das irgendwie.
Aber ich denke, es ist in Ordnung, diese Art von Ansatz zu verwenden, wenn es nur die Startseite oder die About-Seite in zwei Sprachen ist.