我有这个自定义pligin,我使用它来保存用户的语言首选项。我将其存储为cookie,如下所示:
<?php
add_filter( \'init\', \'aws_set_language_cookie\', 999 );
function aws_set_language_cookie() {
global $TRP_LANGUAGE;
if ( isset( $TRP_LANGUAGE ) ) {
$result = setcookie( \'language\', $TRP_LANGUAGE, time() + ( 30 * DAY_IN_SECONDS ), "/", "" , true, true );
}
}
?>
现在如果你看看网站
https://ugrandchurch.com/ 切换到西班牙语后,在inspect元素中打开Cookie。您将看到一个名为“的cookie”;“语言”;创建的,其价值为;“es\\u es”;已保存,但更改为;en\\u en“;3秒钟后。
如何确保西班牙语的价值;“es\\u es”;保留,而不是被;en\\u en";。
这里使用的WordPress语言插件名为TranslatePress
SO网友:Kenny Hall
我在您的网站上没有看到这种情况,但我认为您可能可以删除setcookie()前面的变量声明。在这段代码中,我没有看到任何地方使用了调用的结果。这让我想知道是否因为没有使用变量而设置了该值。
<?php
add_filter( \'init\', \'aws_set_language_cookie\', 999 );
function aws_set_language_cookie() {
global $TRP_LANGUAGE;
if ( isset( $TRP_LANGUAGE ) ) {
setcookie( \'language\', $TRP_LANGUAGE, time() + ( 30 * DAY_IN_SECONDS ), "/", "" , true, true );
}
}
?>
我希望这有帮助,如果没有帮助,很抱歉:)