正如大家知道的,我们可以通过现有的不同的主题来完全更改 WordPress 的样式,如果你有自己的网站的话你也可以自己来制作一个。但是你知道 WordPress 本身的配置也是可以被修改的吗?这就是wp-config
文件的作用。
这篇文章主要带大家了解一下 wp-config.php 是什么、它包含了什么内容以及我们能对它做(不能做)什么。
wp-config.php 是什么?
我们这里提到的wp-config
文件是指位于 WordPress 所安装的根目录下的wp-config.php
文件。它包含了Wordpress很多功能需要的信息。如果你没有正确配置这个文件的话,你的Wordpress是安装不成功的。这也意味着如果你编辑这个文件发生错误时,网站也将打不开。
为避免这些错误,我们就必须了解wp-config
文件包含的内容。这样,你在修改时就不会冒太大的风险了(但是最好确保在传送到服务器之前进行好本地测试)。
另外,了解了wp-config文件之后,我们还可以增加一些参数来更改Wordpress的默认行为。
PS:我们并不一定要手动配置wp-config文件,事实上,我们安装的时候,Wordpress 会要求我们输入那些必要的信息。这就意味着只有在我们要自定义一下配置的时候,我们才需要修改wp-config
文件。
本文后面的部分我们主要涉及到Wordpress的wp-config
文件必须包含的不同的配置项。
如果你是刚刚下载的Wordpress,你还没有wp-config文件,但是有一个叫做wp-config-sample.php
的文件。如果你不想通过安装的话,可以直接修改wp-config-sample.php
并把它重命名成wp-config.php
。
我们在这个文件能找到什么?
此部分我们主要带大家了解下当前状态下我们能在wp-config
文件中找到的内容(Wordpress 4.1版本)。同时告诉大家在需要的时候如何修改这些行。
数据库配置
数据库配置是强制存在的配置,你必须填写正确的值,如果不这么做的话,Wordpress就无法创建它所需要的表。这些配置同wp-config
文件中其他配置一样,包含了一系列的常量。
在PHP中定义常量,必须使用define()
函数。第一个参数是常量的名字,第二个参数是它的值,可以是一个字符串,或者数字,或者其他任何你想要的。
数据库配置的第一个常量是DB_NAME
。就像它的名字所示的,它需要指定你的Wordpress安装所用的数据库,它的值是代表正确数据库名称的字符串。
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>' . print_r($wpdb->queries, true) . '</pre>';
}
文章相关常量
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来了解更详细的内容。