WordPress 在 wp-includes/default-constants 定义了 WordPress 常用常量的默认值,这些常量都可以在 wp-config.php 中预先定义,这里都会判断如果在 wp-config.php 定义了,就不设置默认值。
wp_initial_constants() 函数
1. 定义了这个和文件大小的常量,自己不用去算了,直接用就好了:
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 );
2. 定义了和时间有关的常量,也别去算了,直接用就好了:
define( 'MINUTE_IN_SECONDS', 60 ); 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 );
3. 定义了 WP_CONTENT_DIR 这个最常用的常量,如果 wp-config.php 中没有定义,直接定义为:
define( 'WP_CONTENT_DIR', ABSPATH . 'wp-content' );
所以这个其实也说可以在 wp-config.php 中将 wp-content 目录设置为任何一个目录,伪装一下,让人不知道你用的是 WordPress。
4. 如果全局变量 $blog_id 没有设置,就设置为 1.
5. 定义了 WP_MEMORY_LIMIT 和 WP_MAX_MEMORY_LIMIT 这两个 WordPress 运行时允许的内存。
这两个有点复杂,WordPress 首先wp-config.php 中有没有定义,如果没有定义的话,检查当前的 PHP 系统是否支持运行时修改脚本所需的内存,如果不行就用 PHP 默认的设置,如果可以的话,WP_MEMORY_LIMIT 在多站点设置为 64M,单站点设置为 40M。WP_MAX_MEMORY_LIMIT 设置为 256M。
6. 然后WP_DEBUG, WP_DEBUG_DISPLAY, WP_DEBUG_LOG, WP_CACHE, SCRIPT_DEBUG, MEDIA_TRASH, SHORTINIT 没有定义的话,默认都被定义为 false。
这几个变量是干嘛的?简单说一下:
WP_DEBUG:是否开启 PHP debug 功能。
WP_DEBUG_DISPLAY:PHP 错误脚本是否直接显示出来。
WP_DEBUG_LOG:PHP 错误脚本是否存到文件中(wp-content/debug.log)。
WP_CACHE:是否开启 WordPress 默认的文件缓存。
SCRIPT_DEBUG:WordPress 加载的 JS 脚本都是 min 版本,如果要进行 JS 脚本 debug 的话,打开这个常量,就会加载非 min 版本,便于 debug。
MEDIA_TRASH:后台的媒体是否有垃圾箱,设置为 true,则图片等媒体不会直接删除,而是进入垃圾箱。
SHORTINIT:用于加载最小化 WordPress。
7. 最后定义 WP_FEATURE_BETTER_PASSWORDS 默认为: true,就是系统会建议用户是强度更好的密码的。
wp_plugin_directory_constants() 函数
WP_CONTENT_URL, WP_PLUGIN_DIR, WP_PLUGIN_URL, PLUGINDIR, WPMU_PLUGIN_DIR, WPMU_PLUGIN_URL, MUPLUGINDIR 这几个插件和多站点 mu 插件的目录和地址的默认,当然在 wp-config.php 中将这些目录和地址设置为其他,伪装一下,让人不知道你用的是 WordPress。
wp_cookie_constants() 函数
定义 cookie 相关的变量的默认值,一般我们不会去改动他,所以这里就详细讲解了。
wp_ssl_constants() 函数
它定义了 进入后台是否使用加密地址常量FORCE_SSL_ADMIN 和 进入登录页面是否使用加密地址常量FORCE_SSL_LOGIN 默认都为 false,可以在 wp-config.php 中修改。
wp_functionality_constants() 函数
定义了自动保存常量 AUTOSAVE_INTERVAL 为 60 秒,自动清空垃圾箱常量 EMPTY_TRASH_DAYS 为 30 天,是否开始文章修订功能常量 WP_POST_REVISIONS 为 false,定时作业最长工作时间常量 WP_CRON_LOCK_TIMEOUT 为 60 秒。
wp_templating_constants() 函数
定义了模板目录常量 TEMPLATEPATH,样式文件所在目录常量 STYLESHEETPATH 的值,这个当然不能在wp-config.php 中修改设置,你只要拿去用就好了。
最后是:系统的默认主题常量 WP_DEFAULT_THEME。