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

How to set and get common variable in session for MultiSite WordPress?

我正在使用 MultiSite WordPress。我想在 session/cookies 中为所有站点设置和获取公共变量。

我的站点是:

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"

中获取该值时

还有其他解决方案吗?

提前致谢

跨子域使用会话 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 多站点站点旨在成为具有相似设计的独立站点。通过公共会话连接这些站点可能不是最好的架构想法。