PageRenderTime 33ms CodeModel.GetById 13ms app.highlight 14ms RepoModel.GetById 1ms app.codeStats 0ms

/wp-includes/ms-default-constants.php

https://bitbucket.org/skyarch-iijima/wordpress
PHP | 162 lines | 78 code | 17 blank | 67 comment | 27 complexity | 55fad8b8f4cd83131c4841ac4e9ea48d MD5 | raw file
  1<?php
  2/**
  3 * Defines constants and global variables that can be overridden, generally in wp-config.php.
  4 *
  5 * @package WordPress
  6 * @subpackage Multisite
  7 * @since 3.0.0
  8 */
  9
 10/**
 11 * Defines Multisite upload constants.
 12 *
 13 * Exists for backward compatibility with legacy file-serving through
 14 * wp-includes/ms-files.php (wp-content/blogs.php in MU).
 15 *
 16 * @since 3.0.0
 17 */
 18function ms_upload_constants() {
 19	// This filter is attached in ms-default-filters.php but that file is not included during SHORTINIT.
 20	add_filter( 'default_site_option_ms_files_rewriting', '__return_true' );
 21
 22	if ( ! get_site_option( 'ms_files_rewriting' ) )
 23		return;
 24
 25	// Base uploads dir relative to ABSPATH
 26	if ( !defined( 'UPLOADBLOGSDIR' ) )
 27		define( 'UPLOADBLOGSDIR', 'wp-content/blogs.dir' );
 28
 29	// Note, the main site in a post-MU network uses wp-content/uploads.
 30	// This is handled in wp_upload_dir() by ignoring UPLOADS for this case.
 31	if ( ! defined( 'UPLOADS' ) ) {
 32		$site_id = get_current_blog_id();
 33
 34		define( 'UPLOADS', UPLOADBLOGSDIR . '/' . $site_id . '/files/' );
 35
 36		// Uploads dir relative to ABSPATH
 37		if ( 'wp-content/blogs.dir' == UPLOADBLOGSDIR && ! defined( 'BLOGUPLOADDIR' ) )
 38			define( 'BLOGUPLOADDIR', WP_CONTENT_DIR . '/blogs.dir/' . $site_id . '/files/' );
 39	}
 40}
 41
 42/**
 43 * Defines Multisite cookie constants.
 44 *
 45 * @since 3.0.0
 46 */
 47function ms_cookie_constants(  ) {
 48	$current_network = get_network();
 49
 50	/**
 51	 * @since 1.2.0
 52	 */
 53	if ( !defined( 'COOKIEPATH' ) )
 54		define( 'COOKIEPATH', $current_network->path );
 55
 56	/**
 57	 * @since 1.5.0
 58	 */
 59	if ( !defined( 'SITECOOKIEPATH' ) )
 60		define( 'SITECOOKIEPATH', $current_network->path );
 61
 62	/**
 63	 * @since 2.6.0
 64	 */
 65	if ( !defined( 'ADMIN_COOKIE_PATH' ) ) {
 66		if ( ! is_subdomain_install() || trim( parse_url( get_option( 'siteurl' ), PHP_URL_PATH ), '/' ) ) {
 67			define( 'ADMIN_COOKIE_PATH', SITECOOKIEPATH );
 68		} else {
 69			define( 'ADMIN_COOKIE_PATH', SITECOOKIEPATH . 'wp-admin' );
 70		}
 71	}
 72
 73	/**
 74	 * @since 2.0.0
 75	 */
 76	if ( !defined('COOKIE_DOMAIN') && is_subdomain_install() ) {
 77		if ( !empty( $current_network->cookie_domain ) )
 78			define('COOKIE_DOMAIN', '.' . $current_network->cookie_domain);
 79		else
 80			define('COOKIE_DOMAIN', '.' . $current_network->domain);
 81	}
 82}
 83
 84/**
 85 * Defines Multisite file constants.
 86 *
 87 * Exists for backward compatibility with legacy file-serving through
 88 * wp-includes/ms-files.php (wp-content/blogs.php in MU).
 89 *
 90 * @since 3.0.0
 91 */
 92function ms_file_constants() {
 93	/**
 94	 * Optional support for X-Sendfile header
 95	 * @since 3.0.0
 96	 */
 97	if ( !defined( 'WPMU_SENDFILE' ) )
 98		define( 'WPMU_SENDFILE', false );
 99
100	/**
101	 * Optional support for X-Accel-Redirect header
102	 * @since 3.0.0
103	 */
104	if ( !defined( 'WPMU_ACCEL_REDIRECT' ) )
105		define( 'WPMU_ACCEL_REDIRECT', false );
106}
107
108/**
109 * Defines Multisite subdomain constants and handles warnings and notices.
110 *
111 * VHOST is deprecated in favor of SUBDOMAIN_INSTALL, which is a bool.
112 *
113 * On first call, the constants are checked and defined. On second call,
114 * we will have translations loaded and can trigger warnings easily.
115 *
116 * @since 3.0.0
117 *
118 * @staticvar bool $subdomain_error
119 * @staticvar bool $subdomain_error_warn
120 */
121function ms_subdomain_constants() {
122	static $subdomain_error = null;
123	static $subdomain_error_warn = null;
124
125	if ( false === $subdomain_error ) {
126		return;
127	}
128
129	if ( $subdomain_error ) {
130		$vhost_deprecated = sprintf(
131			/* translators: 1: VHOST, 2: SUBDOMAIN_INSTALL, 3: wp-config.php, 4: is_subdomain_install() */
132			__( 'The constant %1$s <strong>is deprecated</strong>. Use the boolean constant %2$s in %3$s to enable a subdomain configuration. Use %4$s to check whether a subdomain configuration is enabled.' ),
133			'<code>VHOST</code>',
134			'<code>SUBDOMAIN_INSTALL</code>',
135			'<code>wp-config.php</code>',
136			'<code>is_subdomain_install()</code>'
137		);
138		if ( $subdomain_error_warn ) {
139			trigger_error( __( '<strong>Conflicting values for the constants VHOST and SUBDOMAIN_INSTALL.</strong> The value of SUBDOMAIN_INSTALL will be assumed to be your subdomain configuration setting.' ) . ' ' . $vhost_deprecated, E_USER_WARNING );
140		} else {
141	 		_deprecated_argument( 'define()', '3.0.0', $vhost_deprecated );
142		}
143		return;
144	}
145
146	if ( defined( 'SUBDOMAIN_INSTALL' ) && defined( 'VHOST' ) ) {
147		$subdomain_error = true;
148		if ( SUBDOMAIN_INSTALL !== ( 'yes' == VHOST ) ) {
149			$subdomain_error_warn = true;
150		}
151	} elseif ( defined( 'SUBDOMAIN_INSTALL' ) ) {
152		$subdomain_error = false;
153		define( 'VHOST', SUBDOMAIN_INSTALL ? 'yes' : 'no' );
154	} elseif ( defined( 'VHOST' ) ) {
155		$subdomain_error = true;
156		define( 'SUBDOMAIN_INSTALL', 'yes' == VHOST );
157	} else {
158		$subdomain_error = false;
159		define( 'SUBDOMAIN_INSTALL', false );
160		define( 'VHOST', 'no' );
161	}
162}