|
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 */ |
|
18 function ms_upload_constants() { |
|
19 global $wpdb; |
|
20 |
|
21 // This filter is attached in ms-default-filters.php but that file is not included during SHORTINIT. |
|
22 add_filter( 'default_site_option_ms_files_rewriting', '__return_true' ); |
|
23 |
|
24 if ( ! get_site_option( 'ms_files_rewriting' ) ) |
|
25 return; |
|
26 |
|
27 // Base uploads dir relative to ABSPATH |
|
28 if ( !defined( 'UPLOADBLOGSDIR' ) ) |
|
29 define( 'UPLOADBLOGSDIR', 'wp-content/blogs.dir' ); |
|
30 |
|
31 // Note, the main site in a post-MU network uses wp-content/uploads. |
|
32 // This is handled in wp_upload_dir() by ignoring UPLOADS for this case. |
|
33 if ( ! defined( 'UPLOADS' ) ) { |
|
34 define( 'UPLOADS', UPLOADBLOGSDIR . "/{$wpdb->blogid}/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/{$wpdb->blogid}/files/" ); |
|
39 } |
|
40 } |
|
41 |
|
42 /** |
|
43 * Defines Multisite cookie constants. |
|
44 * |
|
45 * @since 3.0.0 |
|
46 */ |
|
47 function ms_cookie_constants( ) { |
|
48 global $current_site; |
|
49 |
|
50 /** |
|
51 * @since 1.2.0 |
|
52 */ |
|
53 if ( !defined( 'COOKIEPATH' ) ) |
|
54 define( 'COOKIEPATH', $current_site->path ); |
|
55 |
|
56 /** |
|
57 * @since 1.5.0 |
|
58 */ |
|
59 if ( !defined( 'SITECOOKIEPATH' ) ) |
|
60 define( 'SITECOOKIEPATH', $current_site->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_site->cookie_domain ) ) |
|
78 define('COOKIE_DOMAIN', '.' . $current_site->cookie_domain); |
|
79 else |
|
80 define('COOKIE_DOMAIN', '.' . $current_site->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 */ |
|
92 function 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 function ms_subdomain_constants() { |
|
119 static $error = null; |
|
120 static $error_warn = false; |
|
121 |
|
122 if ( false === $error ) |
|
123 return; |
|
124 |
|
125 if ( $error ) { |
|
126 $vhost_deprecated = __( 'The constant <code>VHOST</code> <strong>is deprecated</strong>. Use the boolean constant <code>SUBDOMAIN_INSTALL</code> in wp-config.php to enable a subdomain configuration. Use is_subdomain_install() to check whether a subdomain configuration is enabled.' ); |
|
127 if ( $error_warn ) { |
|
128 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 ); |
|
129 } else { |
|
130 _deprecated_argument( 'define()', '3.0', $vhost_deprecated ); |
|
131 } |
|
132 return; |
|
133 } |
|
134 |
|
135 if ( defined( 'SUBDOMAIN_INSTALL' ) && defined( 'VHOST' ) ) { |
|
136 if ( SUBDOMAIN_INSTALL == ( 'yes' == VHOST ) ) { |
|
137 $error = true; |
|
138 } else { |
|
139 $error = $error_warn = true; |
|
140 } |
|
141 } elseif ( defined( 'SUBDOMAIN_INSTALL' ) ) { |
|
142 define( 'VHOST', SUBDOMAIN_INSTALL ? 'yes' : 'no' ); |
|
143 } elseif ( defined( 'VHOST' ) ) { |
|
144 $error = true; |
|
145 define( 'SUBDOMAIN_INSTALL', 'yes' == VHOST ); |
|
146 } else { |
|
147 define( 'SUBDOMAIN_INSTALL', false ); |
|
148 define( 'VHOST', 'no' ); |
|
149 } |
|
150 } |
|
151 add_action( 'init', 'ms_subdomain_constants' ); |