ms_cookie_constants()
云策文档标注
概述
ms_cookie_constants() 函数用于定义 WordPress 多站点环境中的 Cookie 相关常量,确保 Cookie 路径和域设置正确,以支持多站点网络功能。
关键要点
- 定义 COOKIEPATH 和 SITECOOKIEPATH 常量,均设置为当前网络的路径。
- 根据子域名安装配置,动态定义 ADMIN_COOKIE_PATH 常量。
- 在子域名安装时,定义 COOKIE_DOMAIN 常量,基于网络数据设置 Cookie 域。
- 函数内部使用 get_network()、is_subdomain_install() 和 get_option() 等辅助函数。
代码示例
if ( ! defined( 'COOKIEPATH' ) ) {
define( 'COOKIEPATH', $current_network->path );
}
if ( ! defined( 'SITECOOKIEPATH' ) ) {
define( 'SITECOOKIEPATH', $current_network->path );
}
if ( ! defined( 'ADMIN_COOKIE_PATH' ) ) {
$site_path = parse_url( get_option( 'siteurl' ), PHP_URL_PATH );
if ( ! is_subdomain_install() || is_string( $site_path ) && trim( $site_path, '/' ) ) {
define( 'ADMIN_COOKIE_PATH', SITECOOKIEPATH );
} else {
define( 'ADMIN_COOKIE_PATH', SITECOOKIEPATH . 'wp-admin' );
}
}
if ( ! defined( 'COOKIE_DOMAIN' ) && is_subdomain_install() ) {
if ( ! empty( $current_network->cookie_domain ) ) {
define( 'COOKIE_DOMAIN', '.' . $current_network->cookie_domain );
} else {
define( 'COOKIE_DOMAIN', '.' . $current_network->domain );
}
}注意事项
- 函数仅在常量未定义时才进行定义,避免重复定义错误。
- ADMIN_COOKIE_PATH 的定义依赖于站点 URL 路径和子域名安装状态。
- COOKIE_DOMAIN 仅在子域名安装时定义,并优先使用网络的自定义 Cookie 域。
原文内容
Defines Multisite cookie constants.
Source
function ms_cookie_constants() {
$current_network = get_network();
/**
* @since 1.2.0
*/
if ( ! defined( 'COOKIEPATH' ) ) {
define( 'COOKIEPATH', $current_network->path );
}
/**
* @since 1.5.0
*/
if ( ! defined( 'SITECOOKIEPATH' ) ) {
define( 'SITECOOKIEPATH', $current_network->path );
}
/**
* @since 2.6.0
*/
if ( ! defined( 'ADMIN_COOKIE_PATH' ) ) {
$site_path = parse_url( get_option( 'siteurl' ), PHP_URL_PATH );
if ( ! is_subdomain_install() || is_string( $site_path ) && trim( $site_path, '/' ) ) {
define( 'ADMIN_COOKIE_PATH', SITECOOKIEPATH );
} else {
define( 'ADMIN_COOKIE_PATH', SITECOOKIEPATH . 'wp-admin' );
}
}
/**
* @since 2.0.0
*/
if ( ! defined( 'COOKIE_DOMAIN' ) && is_subdomain_install() ) {
if ( ! empty( $current_network->cookie_domain ) ) {
define( 'COOKIE_DOMAIN', '.' . $current_network->cookie_domain );
} else {
define( 'COOKIE_DOMAIN', '.' . $current_network->domain );
}
}
}
Changelog
| Version | Description |
|---|---|
| 3.0.0 | Introduced. |