2010-01-15 23:03:41 +01:00
|
|
|
<?php
|
|
|
|
/**
|
|
|
|
* Defines constants and global variables that can be overridden, generally in wp-config.php.
|
|
|
|
*
|
|
|
|
* @package WordPress
|
|
|
|
*/
|
|
|
|
|
|
|
|
/**
|
2020-01-29 01:45:18 +01:00
|
|
|
* Defines initial WordPress constants.
|
2010-02-17 14:14:45 +01:00
|
|
|
*
|
|
|
|
* @see wp_debug_mode()
|
|
|
|
*
|
2010-02-12 08:52:58 +01:00
|
|
|
* @since 3.0.0
|
2015-10-08 23:45:25 +02:00
|
|
|
*
|
2017-10-21 00:04:56 +02:00
|
|
|
* @global int $blog_id The current site ID.
|
|
|
|
* @global string $wp_version The WordPress version string.
|
2010-02-12 08:52:58 +01:00
|
|
|
*/
|
2013-01-04 11:13:51 +01:00
|
|
|
function wp_initial_constants() {
|
2020-09-12 02:12:08 +02:00
|
|
|
global $blog_id, $wp_version;
|
2010-02-12 08:52:58 +01:00
|
|
|
|
2016-07-08 13:19:29 +02:00
|
|
|
/**#@+
|
|
|
|
* Constants for expressing human-readable data sizes in their respective number of bytes.
|
|
|
|
*
|
|
|
|
* @since 4.4.0
|
2022-03-18 21:48:02 +01:00
|
|
|
* @since 6.0.0 `PB_IN_BYTES`, `EB_IN_BYTES`, `ZB_IN_BYTES`, and `YB_IN_BYTES` were added.
|
2016-07-08 13:19:29 +02:00
|
|
|
*/
|
|
|
|
define( 'KB_IN_BYTES', 1024 );
|
|
|
|
define( 'MB_IN_BYTES', 1024 * KB_IN_BYTES );
|
|
|
|
define( 'GB_IN_BYTES', 1024 * MB_IN_BYTES );
|
|
|
|
define( 'TB_IN_BYTES', 1024 * GB_IN_BYTES );
|
2022-03-18 21:48:02 +01:00
|
|
|
define( 'PB_IN_BYTES', 1024 * TB_IN_BYTES );
|
|
|
|
define( 'EB_IN_BYTES', 1024 * PB_IN_BYTES );
|
|
|
|
define( 'ZB_IN_BYTES', 1024 * EB_IN_BYTES );
|
|
|
|
define( 'YB_IN_BYTES', 1024 * ZB_IN_BYTES );
|
2016-07-08 13:19:29 +02:00
|
|
|
/**#@-*/
|
|
|
|
|
2019-04-03 01:33:53 +02:00
|
|
|
// Start of run timestamp.
|
|
|
|
if ( ! defined( 'WP_START_TIMESTAMP' ) ) {
|
|
|
|
define( 'WP_START_TIMESTAMP', microtime( true ) );
|
|
|
|
}
|
|
|
|
|
2019-07-09 07:45:58 +02:00
|
|
|
$current_limit = ini_get( 'memory_limit' );
|
2016-07-08 16:37:30 +02:00
|
|
|
$current_limit_int = wp_convert_hr_to_bytes( $current_limit );
|
|
|
|
|
|
|
|
// Define memory limits.
|
|
|
|
if ( ! defined( 'WP_MEMORY_LIMIT' ) ) {
|
|
|
|
if ( false === wp_is_ini_value_changeable( 'memory_limit' ) ) {
|
|
|
|
define( 'WP_MEMORY_LIMIT', $current_limit );
|
|
|
|
} elseif ( is_multisite() ) {
|
|
|
|
define( 'WP_MEMORY_LIMIT', '64M' );
|
2010-02-12 08:52:58 +01:00
|
|
|
} else {
|
2016-07-08 16:37:30 +02:00
|
|
|
define( 'WP_MEMORY_LIMIT', '40M' );
|
2010-02-12 08:52:58 +01:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2011-04-28 18:25:36 +02:00
|
|
|
if ( ! defined( 'WP_MAX_MEMORY_LIMIT' ) ) {
|
2016-07-08 16:37:30 +02:00
|
|
|
if ( false === wp_is_ini_value_changeable( 'memory_limit' ) ) {
|
|
|
|
define( 'WP_MAX_MEMORY_LIMIT', $current_limit );
|
|
|
|
} elseif ( -1 === $current_limit_int || $current_limit_int > 268435456 /* = 256M */ ) {
|
|
|
|
define( 'WP_MAX_MEMORY_LIMIT', $current_limit );
|
|
|
|
} else {
|
|
|
|
define( 'WP_MAX_MEMORY_LIMIT', '256M' );
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
// Set memory limits.
|
|
|
|
$wp_limit_int = wp_convert_hr_to_bytes( WP_MEMORY_LIMIT );
|
|
|
|
if ( -1 !== $current_limit_int && ( -1 === $wp_limit_int || $wp_limit_int > $current_limit_int ) ) {
|
2019-07-09 07:45:58 +02:00
|
|
|
ini_set( 'memory_limit', WP_MEMORY_LIMIT );
|
2011-04-28 18:25:36 +02:00
|
|
|
}
|
|
|
|
|
2017-12-01 00:11:00 +01:00
|
|
|
if ( ! isset( $blog_id ) ) {
|
2010-02-12 08:52:58 +01:00
|
|
|
$blog_id = 1;
|
2017-12-01 00:11:00 +01:00
|
|
|
}
|
2010-02-12 08:52:58 +01:00
|
|
|
|
2017-12-01 00:11:00 +01:00
|
|
|
if ( ! defined( 'WP_CONTENT_DIR' ) ) {
|
2020-01-29 01:45:18 +01:00
|
|
|
define( 'WP_CONTENT_DIR', ABSPATH . 'wp-content' ); // No trailing slash, full paths only - WP_CONTENT_URL is defined further down.
|
2017-12-01 00:11:00 +01:00
|
|
|
}
|
2010-02-12 08:52:58 +01:00
|
|
|
|
General: Introduce `WP_DEVELOPMENT_MODE` constant to signify context-specific development mode.
In recent releases, WordPress core added several instances of cache usage around specific files. While those caches are safe to use in a production context, in development certain nuances apply for whether or not those caches make sense to use. Initially, `WP_DEBUG` was used as a temporary workaround, but it was clear that a more granular method to signify a specific development mode was required: For example, caches around `theme.json` should be disabled when working on a theme as otherwise it would disrupt the theme developer's workflow, but when working on a plugin or WordPress core, this consideration does not apply.
This changeset introduces a `WP_DEVELOPMENT_MODE` constant which, for now, can be set to either "core", "plugin", "theme", or an empty string, the latter of which means no development mode, which is also the default. A new function `wp_get_development_mode()` is the recommended way to retrieve that configuration value.
With the new function available, this changeset replaces all existing instances of the aforementioned `WP_DEBUG` workaround to use `wp_get_development_mode()` with a more specific check.
Props azaozz, sergeybiryukov, peterwilsoncc, spacedmonkey.
Fixes #57487.
Built from https://develop.svn.wordpress.org/trunk@56042
git-svn-id: http://core.svn.wordpress.org/trunk@55554 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2023-06-26 21:57:25 +02:00
|
|
|
/*
|
2023-07-14 16:10:26 +02:00
|
|
|
* Add define( 'WP_DEVELOPMENT_MODE', 'core' ), or define( 'WP_DEVELOPMENT_MODE', 'plugin' ), or
|
|
|
|
* define( 'WP_DEVELOPMENT_MODE', 'theme' ), or define( 'WP_DEVELOPMENT_MODE', 'all' ) to wp-config.php
|
2023-07-13 02:29:26 +02:00
|
|
|
* to signify development mode for WordPress core, a plugin, a theme, or all three types respectively.
|
General: Introduce `WP_DEVELOPMENT_MODE` constant to signify context-specific development mode.
In recent releases, WordPress core added several instances of cache usage around specific files. While those caches are safe to use in a production context, in development certain nuances apply for whether or not those caches make sense to use. Initially, `WP_DEBUG` was used as a temporary workaround, but it was clear that a more granular method to signify a specific development mode was required: For example, caches around `theme.json` should be disabled when working on a theme as otherwise it would disrupt the theme developer's workflow, but when working on a plugin or WordPress core, this consideration does not apply.
This changeset introduces a `WP_DEVELOPMENT_MODE` constant which, for now, can be set to either "core", "plugin", "theme", or an empty string, the latter of which means no development mode, which is also the default. A new function `wp_get_development_mode()` is the recommended way to retrieve that configuration value.
With the new function available, this changeset replaces all existing instances of the aforementioned `WP_DEBUG` workaround to use `wp_get_development_mode()` with a more specific check.
Props azaozz, sergeybiryukov, peterwilsoncc, spacedmonkey.
Fixes #57487.
Built from https://develop.svn.wordpress.org/trunk@56042
git-svn-id: http://core.svn.wordpress.org/trunk@55554 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2023-06-26 21:57:25 +02:00
|
|
|
*/
|
|
|
|
if ( ! defined( 'WP_DEVELOPMENT_MODE' ) ) {
|
|
|
|
define( 'WP_DEVELOPMENT_MODE', '' );
|
|
|
|
}
|
|
|
|
|
2019-04-16 00:10:52 +02:00
|
|
|
// Add define( 'WP_DEBUG', true ); to wp-config.php to enable display of notices during development.
|
2017-12-01 00:11:00 +01:00
|
|
|
if ( ! defined( 'WP_DEBUG' ) ) {
|
General: Introduce `WP_DEVELOPMENT_MODE` constant to signify context-specific development mode.
In recent releases, WordPress core added several instances of cache usage around specific files. While those caches are safe to use in a production context, in development certain nuances apply for whether or not those caches make sense to use. Initially, `WP_DEBUG` was used as a temporary workaround, but it was clear that a more granular method to signify a specific development mode was required: For example, caches around `theme.json` should be disabled when working on a theme as otherwise it would disrupt the theme developer's workflow, but when working on a plugin or WordPress core, this consideration does not apply.
This changeset introduces a `WP_DEVELOPMENT_MODE` constant which, for now, can be set to either "core", "plugin", "theme", or an empty string, the latter of which means no development mode, which is also the default. A new function `wp_get_development_mode()` is the recommended way to retrieve that configuration value.
With the new function available, this changeset replaces all existing instances of the aforementioned `WP_DEBUG` workaround to use `wp_get_development_mode()` with a more specific check.
Props azaozz, sergeybiryukov, peterwilsoncc, spacedmonkey.
Fixes #57487.
Built from https://develop.svn.wordpress.org/trunk@56042
git-svn-id: http://core.svn.wordpress.org/trunk@55554 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2023-06-26 21:57:25 +02:00
|
|
|
if ( wp_get_development_mode() || 'development' === wp_get_environment_type() ) {
|
2020-07-07 14:57:04 +02:00
|
|
|
define( 'WP_DEBUG', true );
|
|
|
|
} else {
|
|
|
|
define( 'WP_DEBUG', false );
|
|
|
|
}
|
2017-12-01 00:11:00 +01:00
|
|
|
}
|
2010-02-12 08:52:58 +01:00
|
|
|
|
2023-07-09 23:48:22 +02:00
|
|
|
/*
|
|
|
|
* Add define( 'WP_DEBUG_DISPLAY', null ); to wp-config.php to use the globally configured setting
|
|
|
|
* for 'display_errors' and not force errors to be displayed. Use false to force 'display_errors' off.
|
|
|
|
*/
|
2017-12-01 00:11:00 +01:00
|
|
|
if ( ! defined( 'WP_DEBUG_DISPLAY' ) ) {
|
2010-02-12 08:52:58 +01:00
|
|
|
define( 'WP_DEBUG_DISPLAY', true );
|
2017-12-01 00:11:00 +01:00
|
|
|
}
|
2010-02-12 08:52:58 +01:00
|
|
|
|
2019-04-16 00:10:52 +02:00
|
|
|
// Add define( 'WP_DEBUG_LOG', true ); to enable error logging to wp-content/debug.log.
|
2017-12-01 00:11:00 +01:00
|
|
|
if ( ! defined( 'WP_DEBUG_LOG' ) ) {
|
|
|
|
define( 'WP_DEBUG_LOG', false );
|
|
|
|
}
|
2010-02-12 08:52:58 +01:00
|
|
|
|
2017-12-01 00:11:00 +01:00
|
|
|
if ( ! defined( 'WP_CACHE' ) ) {
|
|
|
|
define( 'WP_CACHE', false );
|
|
|
|
}
|
2010-02-12 08:52:58 +01:00
|
|
|
|
2023-07-09 23:48:22 +02:00
|
|
|
/*
|
|
|
|
* Add define( 'SCRIPT_DEBUG', true ); to wp-config.php to enable loading of non-minified,
|
|
|
|
* non-concatenated scripts and stylesheets.
|
|
|
|
*/
|
2015-06-25 04:29:31 +02:00
|
|
|
if ( ! defined( 'SCRIPT_DEBUG' ) ) {
|
2020-09-12 02:12:08 +02:00
|
|
|
if ( ! empty( $wp_version ) ) {
|
2023-06-26 12:44:23 +02:00
|
|
|
$develop_src = str_contains( $wp_version, '-src' );
|
2015-06-25 04:29:31 +02:00
|
|
|
} else {
|
|
|
|
$develop_src = false;
|
|
|
|
}
|
|
|
|
|
|
|
|
define( 'SCRIPT_DEBUG', $develop_src );
|
|
|
|
}
|
|
|
|
|
2010-02-12 08:52:58 +01:00
|
|
|
/**
|
|
|
|
* Private
|
|
|
|
*/
|
2017-12-01 00:11:00 +01:00
|
|
|
if ( ! defined( 'MEDIA_TRASH' ) ) {
|
|
|
|
define( 'MEDIA_TRASH', false );
|
|
|
|
}
|
2010-02-12 08:52:58 +01:00
|
|
|
|
2017-12-01 00:11:00 +01:00
|
|
|
if ( ! defined( 'SHORTINIT' ) ) {
|
|
|
|
define( 'SHORTINIT', false );
|
|
|
|
}
|
2012-09-25 07:26:19 +02:00
|
|
|
|
2020-01-29 01:45:18 +01:00
|
|
|
// Constants for features added to WP that should short-circuit their plugin implementations.
|
2015-07-01 16:48:24 +02:00
|
|
|
define( 'WP_FEATURE_BETTER_PASSWORDS', true );
|
|
|
|
|
2015-08-25 23:21:21 +02:00
|
|
|
/**#@+
|
2015-08-21 20:16:25 +02:00
|
|
|
* Constants for expressing human-readable intervals
|
|
|
|
* in their respective number of seconds.
|
|
|
|
*
|
|
|
|
* Please note that these values are approximate and are provided for convenience.
|
|
|
|
* For example, MONTH_IN_SECONDS wrongly assumes every month has 30 days and
|
|
|
|
* YEAR_IN_SECONDS does not take leap years into account.
|
|
|
|
*
|
2020-01-20 04:14:06 +01:00
|
|
|
* If you need more accuracy please consider using the DateTime class (https://www.php.net/manual/en/class.datetime.php).
|
2015-10-20 08:59:29 +02:00
|
|
|
*
|
|
|
|
* @since 3.5.0
|
2015-10-20 09:35:26 +02:00
|
|
|
* @since 4.4.0 Introduced `MONTH_IN_SECONDS`.
|
2015-08-21 20:16:25 +02:00
|
|
|
*/
|
2013-01-21 15:39:39 +01:00
|
|
|
define( 'MINUTE_IN_SECONDS', 60 );
|
2017-12-01 00:11:00 +01:00
|
|
|
define( 'HOUR_IN_SECONDS', 60 * MINUTE_IN_SECONDS );
|
|
|
|
define( 'DAY_IN_SECONDS', 24 * HOUR_IN_SECONDS );
|
|
|
|
define( 'WEEK_IN_SECONDS', 7 * DAY_IN_SECONDS );
|
|
|
|
define( 'MONTH_IN_SECONDS', 30 * DAY_IN_SECONDS );
|
|
|
|
define( 'YEAR_IN_SECONDS', 365 * DAY_IN_SECONDS );
|
2015-08-25 23:21:21 +02:00
|
|
|
/**#@-*/
|
2010-02-12 08:52:58 +01:00
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
2020-01-29 01:45:18 +01:00
|
|
|
* Defines plugin directory WordPress constants.
|
2010-02-12 08:52:58 +01:00
|
|
|
*
|
2020-01-29 01:45:18 +01:00
|
|
|
* Defines must-use plugin directory constants, which may be overridden in the sunrise.php drop-in.
|
2010-01-15 23:03:41 +01:00
|
|
|
*
|
|
|
|
* @since 3.0.0
|
|
|
|
*/
|
2013-01-04 11:13:51 +01:00
|
|
|
function wp_plugin_directory_constants() {
|
2017-12-01 00:11:00 +01:00
|
|
|
if ( ! defined( 'WP_CONTENT_URL' ) ) {
|
2020-01-29 01:45:18 +01:00
|
|
|
define( 'WP_CONTENT_URL', get_option( 'siteurl' ) . '/wp-content' ); // Full URL - WP_CONTENT_DIR is defined further up.
|
2017-12-01 00:11:00 +01:00
|
|
|
}
|
2010-02-12 08:52:58 +01:00
|
|
|
|
|
|
|
/**
|
|
|
|
* Allows for the plugins directory to be moved from the default location.
|
|
|
|
*
|
|
|
|
* @since 2.6.0
|
|
|
|
*/
|
2017-12-01 00:11:00 +01:00
|
|
|
if ( ! defined( 'WP_PLUGIN_DIR' ) ) {
|
2020-01-29 01:45:18 +01:00
|
|
|
define( 'WP_PLUGIN_DIR', WP_CONTENT_DIR . '/plugins' ); // Full path, no trailing slash.
|
2017-12-01 00:11:00 +01:00
|
|
|
}
|
2010-02-12 08:52:58 +01:00
|
|
|
|
|
|
|
/**
|
|
|
|
* Allows for the plugins directory to be moved from the default location.
|
|
|
|
*
|
|
|
|
* @since 2.6.0
|
|
|
|
*/
|
2017-12-01 00:11:00 +01:00
|
|
|
if ( ! defined( 'WP_PLUGIN_URL' ) ) {
|
2020-01-29 01:45:18 +01:00
|
|
|
define( 'WP_PLUGIN_URL', WP_CONTENT_URL . '/plugins' ); // Full URL, no trailing slash.
|
2017-12-01 00:11:00 +01:00
|
|
|
}
|
2010-02-12 08:52:58 +01:00
|
|
|
|
|
|
|
/**
|
|
|
|
* Allows for the plugins directory to be moved from the default location.
|
|
|
|
*
|
|
|
|
* @since 2.1.0
|
|
|
|
* @deprecated
|
|
|
|
*/
|
2017-12-01 00:11:00 +01:00
|
|
|
if ( ! defined( 'PLUGINDIR' ) ) {
|
2011-12-14 00:45:31 +01:00
|
|
|
define( 'PLUGINDIR', 'wp-content/plugins' ); // Relative to ABSPATH. For back compat.
|
2017-12-01 00:11:00 +01:00
|
|
|
}
|
2010-02-12 08:52:58 +01:00
|
|
|
|
|
|
|
/**
|
|
|
|
* Allows for the mu-plugins directory to be moved from the default location.
|
|
|
|
*
|
|
|
|
* @since 2.8.0
|
|
|
|
*/
|
2017-12-01 00:11:00 +01:00
|
|
|
if ( ! defined( 'WPMU_PLUGIN_DIR' ) ) {
|
2020-01-29 01:45:18 +01:00
|
|
|
define( 'WPMU_PLUGIN_DIR', WP_CONTENT_DIR . '/mu-plugins' ); // Full path, no trailing slash.
|
2017-12-01 00:11:00 +01:00
|
|
|
}
|
2010-02-12 08:52:58 +01:00
|
|
|
|
|
|
|
/**
|
|
|
|
* Allows for the mu-plugins directory to be moved from the default location.
|
|
|
|
*
|
|
|
|
* @since 2.8.0
|
|
|
|
*/
|
2017-12-01 00:11:00 +01:00
|
|
|
if ( ! defined( 'WPMU_PLUGIN_URL' ) ) {
|
2020-01-29 01:45:18 +01:00
|
|
|
define( 'WPMU_PLUGIN_URL', WP_CONTENT_URL . '/mu-plugins' ); // Full URL, no trailing slash.
|
2017-12-01 00:11:00 +01:00
|
|
|
}
|
2010-02-12 08:52:58 +01:00
|
|
|
|
|
|
|
/**
|
|
|
|
* Allows for the mu-plugins directory to be moved from the default location.
|
|
|
|
*
|
|
|
|
* @since 2.8.0
|
|
|
|
* @deprecated
|
|
|
|
*/
|
2017-12-01 00:11:00 +01:00
|
|
|
if ( ! defined( 'MUPLUGINDIR' ) ) {
|
2011-12-14 00:45:31 +01:00
|
|
|
define( 'MUPLUGINDIR', 'wp-content/mu-plugins' ); // Relative to ABSPATH. For back compat.
|
2017-12-01 00:11:00 +01:00
|
|
|
}
|
2010-02-12 08:52:58 +01:00
|
|
|
}
|
2010-01-15 23:03:41 +01:00
|
|
|
|
2010-02-12 08:52:58 +01:00
|
|
|
/**
|
2020-01-29 01:45:18 +01:00
|
|
|
* Defines cookie-related WordPress constants.
|
2010-02-12 08:52:58 +01:00
|
|
|
*
|
2015-01-06 02:57:22 +01:00
|
|
|
* Defines constants after multisite is loaded.
|
2017-12-01 00:11:00 +01:00
|
|
|
*
|
2010-02-12 08:52:58 +01:00
|
|
|
* @since 3.0.0
|
|
|
|
*/
|
2013-01-04 11:13:51 +01:00
|
|
|
function wp_cookie_constants() {
|
2010-02-12 08:52:58 +01:00
|
|
|
/**
|
2020-01-29 01:45:18 +01:00
|
|
|
* Used to guarantee unique hash cookies.
|
2013-12-24 19:57:12 +01:00
|
|
|
*
|
|
|
|
* @since 1.5.0
|
2010-02-12 08:52:58 +01:00
|
|
|
*/
|
2017-12-01 00:11:00 +01:00
|
|
|
if ( ! defined( 'COOKIEHASH' ) ) {
|
2015-10-07 19:11:25 +02:00
|
|
|
$siteurl = get_site_option( 'siteurl' );
|
2017-12-01 00:11:00 +01:00
|
|
|
if ( $siteurl ) {
|
2010-02-12 08:52:58 +01:00
|
|
|
define( 'COOKIEHASH', md5( $siteurl ) );
|
2017-12-01 00:11:00 +01:00
|
|
|
} else {
|
2017-03-23 20:01:42 +01:00
|
|
|
define( 'COOKIEHASH', '' );
|
2017-12-01 00:11:00 +01:00
|
|
|
}
|
2010-01-15 23:03:41 +01:00
|
|
|
}
|
|
|
|
|
2010-02-12 08:52:58 +01:00
|
|
|
/**
|
|
|
|
* @since 2.0.0
|
|
|
|
*/
|
2017-12-01 00:11:00 +01:00
|
|
|
if ( ! defined( 'USER_COOKIE' ) ) {
|
|
|
|
define( 'USER_COOKIE', 'wordpressuser_' . COOKIEHASH );
|
|
|
|
}
|
2010-02-12 08:52:58 +01:00
|
|
|
|
|
|
|
/**
|
|
|
|
* @since 2.0.0
|
|
|
|
*/
|
2017-12-01 00:11:00 +01:00
|
|
|
if ( ! defined( 'PASS_COOKIE' ) ) {
|
|
|
|
define( 'PASS_COOKIE', 'wordpresspass_' . COOKIEHASH );
|
|
|
|
}
|
2010-02-12 08:52:58 +01:00
|
|
|
|
|
|
|
/**
|
|
|
|
* @since 2.5.0
|
|
|
|
*/
|
2017-12-01 00:11:00 +01:00
|
|
|
if ( ! defined( 'AUTH_COOKIE' ) ) {
|
|
|
|
define( 'AUTH_COOKIE', 'wordpress_' . COOKIEHASH );
|
|
|
|
}
|
2010-02-12 08:52:58 +01:00
|
|
|
|
|
|
|
/**
|
|
|
|
* @since 2.6.0
|
|
|
|
*/
|
2017-12-01 00:11:00 +01:00
|
|
|
if ( ! defined( 'SECURE_AUTH_COOKIE' ) ) {
|
|
|
|
define( 'SECURE_AUTH_COOKIE', 'wordpress_sec_' . COOKIEHASH );
|
|
|
|
}
|
2010-02-12 08:52:58 +01:00
|
|
|
|
|
|
|
/**
|
|
|
|
* @since 2.6.0
|
|
|
|
*/
|
2017-12-01 00:11:00 +01:00
|
|
|
if ( ! defined( 'LOGGED_IN_COOKIE' ) ) {
|
|
|
|
define( 'LOGGED_IN_COOKIE', 'wordpress_logged_in_' . COOKIEHASH );
|
|
|
|
}
|
2010-02-12 08:52:58 +01:00
|
|
|
|
|
|
|
/**
|
|
|
|
* @since 2.3.0
|
|
|
|
*/
|
2017-12-01 00:11:00 +01:00
|
|
|
if ( ! defined( 'TEST_COOKIE' ) ) {
|
|
|
|
define( 'TEST_COOKIE', 'wordpress_test_cookie' );
|
|
|
|
}
|
2010-02-12 08:52:58 +01:00
|
|
|
|
|
|
|
/**
|
|
|
|
* @since 1.2.0
|
|
|
|
*/
|
2017-12-01 00:11:00 +01:00
|
|
|
if ( ! defined( 'COOKIEPATH' ) ) {
|
|
|
|
define( 'COOKIEPATH', preg_replace( '|https?://[^/]+|i', '', get_option( 'home' ) . '/' ) );
|
|
|
|
}
|
2010-02-12 08:52:58 +01:00
|
|
|
|
|
|
|
/**
|
|
|
|
* @since 1.5.0
|
|
|
|
*/
|
2017-12-01 00:11:00 +01:00
|
|
|
if ( ! defined( 'SITECOOKIEPATH' ) ) {
|
|
|
|
define( 'SITECOOKIEPATH', preg_replace( '|https?://[^/]+|i', '', get_option( 'siteurl' ) . '/' ) );
|
|
|
|
}
|
2010-02-12 08:52:58 +01:00
|
|
|
|
|
|
|
/**
|
|
|
|
* @since 2.6.0
|
|
|
|
*/
|
2017-12-01 00:11:00 +01:00
|
|
|
if ( ! defined( 'ADMIN_COOKIE_PATH' ) ) {
|
2010-02-12 08:52:58 +01:00
|
|
|
define( 'ADMIN_COOKIE_PATH', SITECOOKIEPATH . 'wp-admin' );
|
2017-12-01 00:11:00 +01:00
|
|
|
}
|
2010-02-12 08:52:58 +01:00
|
|
|
|
|
|
|
/**
|
|
|
|
* @since 2.6.0
|
|
|
|
*/
|
2017-12-01 00:11:00 +01:00
|
|
|
if ( ! defined( 'PLUGINS_COOKIE_PATH' ) ) {
|
|
|
|
define( 'PLUGINS_COOKIE_PATH', preg_replace( '|https?://[^/]+|i', '', WP_PLUGIN_URL ) );
|
|
|
|
}
|
2010-02-12 08:52:58 +01:00
|
|
|
|
|
|
|
/**
|
|
|
|
* @since 2.0.0
|
Users: Set the default value of `COOKIE_DOMAIN` to an empty string.
This matches the type expected by the `setcookie()` function for the `$domain` parameter, and resolves a fatal error if `strict_types` is enabled.
Reference: [https://www.php.net/setcookie PHP Manual: setcookie()].
Follow-up to [2725], [6434], [12732], [13062].
Props kmvan, rajinsharwar, jrf, desrosj, Cybr, nicolefurlan, oglekler, hellofromTonya, kirasong, chaion07, mukesh27.
Fixes #46550.
Built from https://develop.svn.wordpress.org/trunk@58011
git-svn-id: http://core.svn.wordpress.org/trunk@57482 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2024-04-16 18:52:14 +02:00
|
|
|
* @since 6.5.0 The value has changed from false to an empty string.
|
2010-02-12 08:52:58 +01:00
|
|
|
*/
|
2017-12-01 00:11:00 +01:00
|
|
|
if ( ! defined( 'COOKIE_DOMAIN' ) ) {
|
Users: Set the default value of `COOKIE_DOMAIN` to an empty string.
This matches the type expected by the `setcookie()` function for the `$domain` parameter, and resolves a fatal error if `strict_types` is enabled.
Reference: [https://www.php.net/setcookie PHP Manual: setcookie()].
Follow-up to [2725], [6434], [12732], [13062].
Props kmvan, rajinsharwar, jrf, desrosj, Cybr, nicolefurlan, oglekler, hellofromTonya, kirasong, chaion07, mukesh27.
Fixes #46550.
Built from https://develop.svn.wordpress.org/trunk@58011
git-svn-id: http://core.svn.wordpress.org/trunk@57482 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2024-04-16 18:52:14 +02:00
|
|
|
define( 'COOKIE_DOMAIN', '' );
|
2017-12-01 00:11:00 +01:00
|
|
|
}
|
Bootstrap/Load: Introduce a recovery mode for fixing fatal errors.
Using the new fatal handler introduced in [44962], an email is sent to the admin when a fatal error occurs. This email includes a secret link to enter recovery mode. When clicked, the link will be validated and on success a cookie will be placed on the client, enabling recovery mode for that user. This functionality is executed early before plugins and themes are loaded, in order to be unaffected by potential fatal errors these might be causing.
When in recovery mode, broken plugins and themes will be paused for that client, so that they are able to access the admin backend despite of these errors. They are notified about the broken extensions and the errors caused, and can then decide whether they would like to temporarily deactivate the extension or fix the problem and resume the extension.
A link in the admin bar allows the client to exit recovery mode.
Props timothyblynjacobs, afragen, flixos90, nerrad, miss_jwo, schlessera, spacedmonkey, swissspidy.
Fixes #46130, #44458.
Built from https://develop.svn.wordpress.org/trunk@44973
git-svn-id: http://core.svn.wordpress.org/trunk@44804 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2019-03-21 22:53:51 +01:00
|
|
|
|
|
|
|
if ( ! defined( 'RECOVERY_MODE_COOKIE' ) ) {
|
|
|
|
/**
|
|
|
|
* @since 5.2.0
|
|
|
|
*/
|
|
|
|
define( 'RECOVERY_MODE_COOKIE', 'wordpress_rec_' . COOKIEHASH );
|
|
|
|
}
|
2010-02-12 08:52:58 +01:00
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
2018-02-09 19:21:31 +01:00
|
|
|
* Defines SSL-related WordPress constants.
|
2010-02-12 08:52:58 +01:00
|
|
|
*
|
|
|
|
* @since 3.0.0
|
|
|
|
*/
|
2013-01-04 11:13:51 +01:00
|
|
|
function wp_ssl_constants() {
|
2010-02-12 08:52:58 +01:00
|
|
|
/**
|
|
|
|
* @since 2.6.0
|
|
|
|
*/
|
2017-12-01 00:11:00 +01:00
|
|
|
if ( ! defined( 'FORCE_SSL_ADMIN' ) ) {
|
2014-06-05 16:09:18 +02:00
|
|
|
if ( 'https' === parse_url( get_option( 'siteurl' ), PHP_URL_SCHEME ) ) {
|
|
|
|
define( 'FORCE_SSL_ADMIN', true );
|
|
|
|
} else {
|
|
|
|
define( 'FORCE_SSL_ADMIN', false );
|
|
|
|
}
|
|
|
|
}
|
2014-05-29 05:59:15 +02:00
|
|
|
force_ssl_admin( FORCE_SSL_ADMIN );
|
2010-02-12 08:52:58 +01:00
|
|
|
|
|
|
|
/**
|
|
|
|
* @since 2.6.0
|
2014-05-29 05:59:15 +02:00
|
|
|
* @deprecated 4.0.0
|
2010-02-12 08:52:58 +01:00
|
|
|
*/
|
2014-05-29 05:59:15 +02:00
|
|
|
if ( defined( 'FORCE_SSL_LOGIN' ) && FORCE_SSL_LOGIN ) {
|
|
|
|
force_ssl_admin( true );
|
|
|
|
}
|
2010-02-12 08:52:58 +01:00
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
2020-01-29 01:45:18 +01:00
|
|
|
* Defines functionality-related WordPress constants.
|
2010-02-12 08:52:58 +01:00
|
|
|
*
|
|
|
|
* @since 3.0.0
|
|
|
|
*/
|
2013-01-04 11:13:51 +01:00
|
|
|
function wp_functionality_constants() {
|
2010-02-12 08:52:58 +01:00
|
|
|
/**
|
|
|
|
* @since 2.5.0
|
|
|
|
*/
|
2017-12-01 00:11:00 +01:00
|
|
|
if ( ! defined( 'AUTOSAVE_INTERVAL' ) ) {
|
2020-01-29 01:45:18 +01:00
|
|
|
define( 'AUTOSAVE_INTERVAL', MINUTE_IN_SECONDS );
|
2017-12-01 00:11:00 +01:00
|
|
|
}
|
2010-02-12 08:52:58 +01:00
|
|
|
|
|
|
|
/**
|
|
|
|
* @since 2.9.0
|
|
|
|
*/
|
2017-12-01 00:11:00 +01:00
|
|
|
if ( ! defined( 'EMPTY_TRASH_DAYS' ) ) {
|
2010-02-12 08:52:58 +01:00
|
|
|
define( 'EMPTY_TRASH_DAYS', 30 );
|
2017-12-01 00:11:00 +01:00
|
|
|
}
|
2010-02-12 08:52:58 +01:00
|
|
|
|
2017-12-01 00:11:00 +01:00
|
|
|
if ( ! defined( 'WP_POST_REVISIONS' ) ) {
|
|
|
|
define( 'WP_POST_REVISIONS', true );
|
|
|
|
}
|
2011-09-09 21:59:44 +02:00
|
|
|
|
|
|
|
/**
|
|
|
|
* @since 3.3.0
|
|
|
|
*/
|
2017-12-01 00:11:00 +01:00
|
|
|
if ( ! defined( 'WP_CRON_LOCK_TIMEOUT' ) ) {
|
2020-01-29 01:45:18 +01:00
|
|
|
define( 'WP_CRON_LOCK_TIMEOUT', MINUTE_IN_SECONDS );
|
2017-12-01 00:11:00 +01:00
|
|
|
}
|
2010-02-12 08:52:58 +01:00
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
2020-01-29 01:45:18 +01:00
|
|
|
* Defines templating-related WordPress constants.
|
2010-02-12 08:52:58 +01:00
|
|
|
*
|
|
|
|
* @since 3.0.0
|
|
|
|
*/
|
2013-01-04 11:13:51 +01:00
|
|
|
function wp_templating_constants() {
|
2010-02-12 08:52:58 +01:00
|
|
|
/**
|
2020-01-29 01:45:18 +01:00
|
|
|
* Filesystem path to the current active template directory.
|
2017-12-01 00:11:00 +01:00
|
|
|
*
|
2010-02-12 08:52:58 +01:00
|
|
|
* @since 1.5.0
|
Themes: Deprecate usage of `TEMPLATEPATH` and `STYLESHEETPATH` constants.
While generally the functions `get_template_directory()` and `get_stylesheet_directory()` were long recommended to use to get the parent or child theme directory, the `TEMPLATEPATH` and `STYLESHEETPATH` constants were still used in a few places in core, most importantly in template related logic.
The remaining usage was problematic as it prevented testability of certain key components of WordPress core.
This changeset replaces all remaining usage with the corresponding functions and effectively marks these constants as deprecated. It also adds test coverage accordingly and even unlocks some existing, previously commented out test coverage to work as expected.
Performance of the new approach has been benchmarked and shows no notable differences. Yet, given that the current theme directories are not expected to change within a regular WordPress page load, the `get_template_directory()` and `get_stylesheet_directory()` functions were amended with in-memory caching of the result, unless one of the defining values is being filtered.
Props thekt12, spacedmonkey, mukesh27, aaroncampbell, scribu, lloydbudd, cais, chipbennett, toscho, omarabid, CrazyJaco, DrewAPicture, obenland, wonderboymusic, nacin, helen, dd32, chriscct7, SergeyBiryukov, swissspidy, joemcgill, flixos90.
Fixes #18298.
Built from https://develop.svn.wordpress.org/trunk@56635
git-svn-id: http://core.svn.wordpress.org/trunk@56147 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2023-09-20 19:27:23 +02:00
|
|
|
* @deprecated 6.4.0 Use get_template_directory() instead.
|
|
|
|
* @see get_template_directory()
|
2010-02-12 08:52:58 +01:00
|
|
|
*/
|
2017-12-01 00:11:00 +01:00
|
|
|
define( 'TEMPLATEPATH', get_template_directory() );
|
2010-02-12 08:52:58 +01:00
|
|
|
|
|
|
|
/**
|
2020-01-29 01:45:18 +01:00
|
|
|
* Filesystem path to the current active template stylesheet directory.
|
2017-12-01 00:11:00 +01:00
|
|
|
*
|
2010-02-12 08:52:58 +01:00
|
|
|
* @since 2.1.0
|
Themes: Deprecate usage of `TEMPLATEPATH` and `STYLESHEETPATH` constants.
While generally the functions `get_template_directory()` and `get_stylesheet_directory()` were long recommended to use to get the parent or child theme directory, the `TEMPLATEPATH` and `STYLESHEETPATH` constants were still used in a few places in core, most importantly in template related logic.
The remaining usage was problematic as it prevented testability of certain key components of WordPress core.
This changeset replaces all remaining usage with the corresponding functions and effectively marks these constants as deprecated. It also adds test coverage accordingly and even unlocks some existing, previously commented out test coverage to work as expected.
Performance of the new approach has been benchmarked and shows no notable differences. Yet, given that the current theme directories are not expected to change within a regular WordPress page load, the `get_template_directory()` and `get_stylesheet_directory()` functions were amended with in-memory caching of the result, unless one of the defining values is being filtered.
Props thekt12, spacedmonkey, mukesh27, aaroncampbell, scribu, lloydbudd, cais, chipbennett, toscho, omarabid, CrazyJaco, DrewAPicture, obenland, wonderboymusic, nacin, helen, dd32, chriscct7, SergeyBiryukov, swissspidy, joemcgill, flixos90.
Fixes #18298.
Built from https://develop.svn.wordpress.org/trunk@56635
git-svn-id: http://core.svn.wordpress.org/trunk@56147 1a063a9b-81f0-0310-95a4-ce76da25c4cd
2023-09-20 19:27:23 +02:00
|
|
|
* @deprecated 6.4.0 Use get_stylesheet_directory() instead.
|
|
|
|
* @see get_stylesheet_directory()
|
2010-02-12 08:52:58 +01:00
|
|
|
*/
|
2017-12-01 00:11:00 +01:00
|
|
|
define( 'STYLESHEETPATH', get_stylesheet_directory() );
|
2010-02-12 08:52:58 +01:00
|
|
|
|
2010-03-17 18:42:49 +01:00
|
|
|
/**
|
2017-08-22 13:52:48 +02:00
|
|
|
* Slug of the default theme for this installation.
|
2010-03-17 18:42:49 +01:00
|
|
|
* Used as the default theme when installing new sites.
|
2022-01-21 00:53:05 +01:00
|
|
|
* It will be used as the fallback if the active theme doesn't exist.
|
2015-11-25 22:45:25 +01:00
|
|
|
*
|
2010-03-17 18:42:49 +01:00
|
|
|
* @since 3.0.0
|
2020-06-16 23:07:14 +02:00
|
|
|
*
|
2015-11-25 22:45:25 +01:00
|
|
|
* @see WP_Theme::get_core_default_theme()
|
2010-03-17 18:42:49 +01:00
|
|
|
*/
|
2017-12-01 00:11:00 +01:00
|
|
|
if ( ! defined( 'WP_DEFAULT_THEME' ) ) {
|
2023-09-26 19:33:20 +02:00
|
|
|
define( 'WP_DEFAULT_THEME', 'twentytwentyfour' );
|
2017-12-01 00:11:00 +01:00
|
|
|
}
|
2010-01-15 23:03:41 +01:00
|
|
|
}
|