define('DB_NAME', 'wordpressdatabase');
紧随着数据库名称的常量是DB_USER常量,它是所使用的数据库正确的用户名称,数据库密码用DB_PASSWORD常量来标识。


define('DB_USER', 'databaseuser');
define('DB_PASSWORD', 'databasepassword');

最后一个强制性的数据库配置常量是DB_HOST,指定你数据库所在的服务器。通常情况下这个值一般是 ‘localhost’,但有可能你的空间商给你的是一个IP或者是一个子域。

define('DB_HOST', 'localhost');
下面两个常量也是跟数据库有关的,是Wordpress表所使用的编码,默认情况下是UTF-8,你也可以通过修改DB_CHARSET来指定你想要的编码。


/** 创建数据表时默认的文字编码 */
define('DB_CHARSET', 'utf8');
 
/** 数据库整理类型。如不确定请勿更改 */
define('DB_COLLATE', '');

在这些常量的后面,我们可以找到一个被声明为$table_prefix的变量,Wordpress使用这个变量来创建表。默认情况下这个值是'wp_',所以,Wordpress创建的所有表都以wp_开头,例如wp_posts 和 wp_options。

认证密钥

用户自动登录的时候,Wordpress使用的是Cookie。这些Cookie中存储的信息都是加密的,由于下面这八个常量的存在,你可以更好的进行加密。

如果你想更安全加密的话,AUTH_KEY、SECURE_AUTH_KEY、LOGGED_IN_KEY和NONCE_KEY这四个常量是必须的。你还可以通过AUTH_SALT、SECURE_AUTH_SALT、LOGGED_IN_SALT和NONCE_SALT来增强安全性。

这些常量的值都是字符串类型的。为了安全,这些值必须都是唯一的。另外,要使用不同的特殊字符,以避免被破解。

WordPress提供了一个在线生成工具。这个工具会直接生成一些唯一的字符串,你需要做的只是拷贝生成的内容直接替换掉之前的即可。

你可以随时更改这些常量。这么做了之后,存储在Cookie中的用户信息就会失效,用户下次必须手动登录。

调试模式

在$table_prefix变量后面我们可以找到WP_DEBUG常量,默认值为false。如果改成true,在你进行开发时,Wordpress会输出一些对你有用的信息。

如果你安装的Wordpress不仅仅用来做开发调试的话,你应该禁用调试模式。然而,如果你开启了调试模式,你就可以添加一些我们下面章节中涉及到的有用的配置项。

禁止修改的

WP_DEBUG是wp-config文件中最后一个你可以修改的配置项。然而,在这个配置项后面,你还可以看到一个ABSPATH常量。不要修改这个常量,Wordpress根据这个常量来判断它安装位置的绝对路径。

最后,wp-config文件以引入一个wp-settings.php文件结尾,这个文件位于安装目录的根目录下。这个文件包含了一些Wordpress常用的常量、变量以及方法。再说一次,千万不要修改这个文件,也不要修改require_once()的引入路径。

我们可以在这个文件中添加什么?

以上我们探讨了如何修改wp-config文件,但其实我们还可以对这个文件添加一些东西(通常是一些常量)。

在wp-config文件中添加东西,你必须遵守一个规则:新添加的必须位于ABSPATH常量定义之前,通常是添加在WP_DEBUG后面。

下面我们列出一些可以添加到wp-config文件中的配置项。

自动更新

如果你阅读过前面的《Updating WordPress》,你应该已经看到了一个在wp-config文件中添加配置项的例子。实际上,如果你想禁用自动更新的话,可以在wp-config文件中添加下面的常量:
define('AUTOMATIC_UPDATER_DISABLED', true);
不过,你也可以用以下配置项来激活主要更新:

define('WP_AUTO_UPDATE_CORE', true);

更改文件夹

默认情况下,Wordpress把插件和主题存储在安装目录下的wp-content文件夹的子目录中,如果你想更改的话,你可以自己在wp-config文件中定义WP_CONTENT_DIR常量。

你可以通过PHP的dirname()函数来检索你的wp-config文件的路径,这其实就是Wordpress安装的根目录。
define('WP_CONTENT_DIR', dirname(__FILE__) . '/path/to/my/content-dir');
注:路径结尾不要添加斜线。如果你想改变这个目录,你也可以通过定义WP_CONTENT_URL常量来改变它的URL,结尾也不能有斜线。

define('WP_CONTENT_URL', 'http://mysite.com/path/to/my/content-dir');
按照相同的格式,你也可以自定义插件的目录,例如用刚才定义过得路径:


define('WP_PLUGIN_DIR', WP_CONTENT_DIR . '/myplugins');
define('WP_PLUGIN_URL', WP_CONTENT_URL . '/myplugins');

你也可以更改上传文件夹的路径:

define('UPLOADS', 'my/subdirectory/for/uploads');
没有结尾的斜线,这些路径都不是绝对的。都是Wordpress常量ABSPATH的相对路径。

注意:主题目录的文件夹名称是不能修改的,它必须位于WP_CONTENT_DIR常量定义的内容目录的 themes 子目录中。

调试

Error Reporting

前面已经说过了,我们可以通过改变WP_DEBUG的值为TRUE来激活调试模式。如果你启用此选项,Wordpress会把错误报告级别提升为E_ALL并显示所有的错误信息,你可以通过Warning来知道你是否使用了不支持的函数。

你可以通过WP_DEBUG_LOG和WP_DEBUG_DISPLAY常量来控制错误报告的显示方式。如果设置为TRUE,前者将把错误报告发送到一个log文件,而后者会直接显示错误信息。


// I don't want to miss any error!
define('WP_DEBUG', true);
define('WP_DEBUG_LOG', true);
define('WP_DEBUG_DISPLAY', true);

WordPress Scripts and Styles

另一个有用的常量是SCRIPT_DEBUG。它的默认值也是FALSE,把它设置为TRUE,Wordpress将改变它加载JS及CSS文件的方式。默认情况下,Wordpress会加载它们的压缩版本,而启用此选项的话,将会加载非压缩版本,以便于你进行编辑。

define('SCRIPT_DEBUG', true);

Queries查询

如果你想分析Wordpress页面展示时的Queries,你可以把SAVEQUERIES设置为TRUE来实现。

define('SAVEQUERIES', true);

这种方式,你可以检索$wpdb对象的queries属性来查看的所有查询。例如,在页面底部,如果当前用户是管理员,你可以显示所有的查询:


if (current_user_can('administrator')) {
    global $wpdb;
    echo '<pre class="line-numbers language-php"><code class="language-php">' . print_r($wpdb->queries, true) . '

';
}

文章相关常量

Revisions修订版本

我们知道,当我们编辑一篇文章或者页面的时候,Wordpress会把它存储为一个“revision”,这样,当需要的时候,你就可以恢复上一个版本或者取消一些编辑。

当你确定不需要修订版本的时候,你可以通过把WP_POST_REVISIONS常量设置为FALSE来停用此功能。它的默认值也是TRUE,每次你编辑文章的时候,Wordpress都会为你存储一个修订版本,你也可以给定一个整数来限制修订版本的个数。


// I don't want to create revisions
define('WP_POST_REVISIONS', false);
 
// I love revisions!
define('WP_POST_REVISIONS', true);
 
// Too much revisions?
define('WP_POST_REVISIONS', 3);

Automatic Saves自动保存

当你编辑一篇文章(或者发布一篇新的时候),Wordpress不会等你点击发布或者保存草稿:它会通过AJAX,以常量AUTOSAVE_INTERVA定义的时间间隔自动保存你的更改。默认值为60秒,你可以更改此值:


// Save my changes two times per minute
define('AUTOSAVE_INTERVAL', 30);

Trash Bin回收站

有时候,我们会删除文章。Wordpress提供了回收站来保存这些删除的文章,并每30天清空一次回收站。你可以通过常量EMPTY_TRASH_DAYS来更改天数。当你把此值改为0时,会禁用回收站。删除文章时,将真正删除,无法恢复。


// Delete permanently items from the trash bin every two months
define('EMPTY_TRASH_DAYS', 60);
 
// Disabling the trash bin
define('EMPTY_TRASH_DAYS', 0);

PS:禁用后,不仅文章被直接删除,页面、评论及附件都会被立即删除。

总结:

wp-config文件对Wordpress是非常重要的,它定义了存储数据的数据库配置项,还有一些你开发插件或主题时需要的选项。

现在你知道了这个文件的作用,你便可以没有顾虑的编辑此文件了。别忘了现在本地的Wordpress进行测试,避免线上网站出现问题。

上面列出的并不详尽,只是一些可能对你非常有用的配置。大家可以通过WordPress Codex来了解更详细的内容。