如何在MultiSite WordPress的会话中设置和获取公共变量?

时间:2018-04-04 08:54:33

标签: wordpress session multisite

我正在使用MultiSite WordPress。我想在所有网站的会话/ cookie中设置和获取公共变量。

我的网站是:

NetWrok网站:

http://www.sitename.com

子域名网站是:

http://hindi.sitename.com

http://urdu.sitename.com

问题是当我在“http://www.sitename.com”中设置会话值但无法在"http://hindi.sitename.com""http://urdu.sitename.com"

中获取该值时

还有其他解决办法吗?

提前致谢

1 个答案:

答案 0 :(得分:1)

跨子域使用会话cookie是一个众所周知的问题:PHP Sessions across sub domains

但是,如果您希望在wordpress多站点网站上分享常见信息,则可能会有以下情况(如:

$some_name = session_name("shared_multisite_sesssion");
session_set_cookie_params(0, '/', '.sitename.com');
session_start();

仅使用Cookie进行会话

session.use_only_cookies = 1
session.cookie_httponly = 1

在WordPress配置中设置以下参数:

define( 'COOKIE_DOMAIN', '.sitename.com' ); // Dot prefix
define( 'COOKIEPATH',    '/' );
define( 'COOKIEHASH',    md5( 'sitename.com' ) );

但是,您应该考虑一些警告:

  • WordPress多站点网站有时是独立的 - 只要他们拥有自己的域名,这将不再有效(Share a cookie between two websites
  • 许多设置中的WordPress多站点网站旨在成为具有类似设计的单个网站。通过常规会话连接这些网站可能不是最好的架构理念。