你好StackOverflow的人,我有一个问题,我希望你们中的一些人可以帮助我。 假设我应该在www.webshop.com域创建一些Wordpress网络商店,用英语写成,并为该域名提供名为“cartItems”的cookie。好的,不是问题。
问题在于我还需要制作该网站的德语版本,我需要区分英语和德语的cookie。
现在,我的问题是,如果德国网站在www.webshop.com/de/上,我可以设置德国cookie仅适用于/ de / domain,对吗? 但是如何设置除了/ de / one之外的所有域中都可以使用英文cookie。
如果德国网站在de.webshop.com
,那么就无法做到这一点感谢您的所有帮助
答案 0 :(得分:5)
虽然当然你必须使用两个不同的cookie名称,一个用于EN数据,一个用于DE数据。
使用不同的路径(www.webshop.com用于EN和www.webshop.com/de/用于DE):
// this will be available everywhere, both on the english version and the german one
setcookie ('my_en_cookie_name', 'some data', time() + 24*30*3600, '/');
// this will only be visible when accessing the german website, english version user won't be able to see it
setcookie ('my_de_cookie_name', 'some other data', time() + 24*30*3600, '/de/');
cookie的路径是反向阻塞(它只能从指定的目录或从它的子目录中读取,而不能从父目录中读取),因此如果您使用/ de / path设置cookie,则可以读取来自/ de /或/ de / foo /但不是来自/或/ bar /。以同样的方式设置一个路径为/的cookie,可以在/ de /或/ de / foo /或/ bar /上读取。
使用不同的域名(www.webshop.com for EN和de.webshop.com for DE):
// this will be available everywhere, both on the english version and the german one
setcookie ('my_en_cookie_name', 'some data', time() + 24*30*3600, '/', '.webshop.com');
// this will only be visible when accessing the german website, english version user won't be able to see it
setcookie ('my_de_cookie_name', 'some data', time() + 24*30*3600, '/', 'de.webshop.com');
注意:在域名“.webshop.com”上设置cookie意味着该cookie将被发送到webshop.com的每个子域,无论它是什么。确保这就是你想要的。
答案 1 :(得分:3)
有三种方法可以分隔英语和德语的cookies
1)域名: 你可以使用一个单独的www。和德。你提到的子域名。对我来说这将是最简单的
2)路径: 您可以使用路径,但如果您的英语cookie设置为“/”,它仍然可以在“/ de /”下访问。所以如果你想走这条路,你需要像克雷克建议的那样建立一个“/ en /”路径。
3)姓名: 为德语cookie添加不同的名称
您需要在这3个中选择其中一个来分别使用英语和德语。我认为拥有一个单独的子域名是最好的,因为不仅仅是您的cookie路径,而且无论语言如何,您的所有资产路径都是相同的。
答案 2 :(得分:0)
我个人使用过这个插件来解决这个问题: http://wpml.org/
但如果您更喜欢免费的解决方案,这里有一篇非常好的文章: http://codex.wordpress.org/Multilingual_WordPress