通过wp-config来定制你的WordPress

PHPABC WordPress 526 次浏览 , 没有评论

正如大家知道的,我们可以通过现有的不同的主题来完全更改Wordpress的样式,如果你有自己的网站的话你也可以自己来制作一个。这是非常棒的,但是你知道Wordpress本身的配置也是可以被修改的吗?这就是wp-config文件的目的。

这篇文章主要带大家了解一下wp-config文件是什么、它包含了什么内容以及我们能对它做(不能做)什么。

Wordpress

wp-config 文件是什么?

我们这里提到的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_postswp_options

认证密钥

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

如果你想更安全加密的话,AUTH_KEYSECURE_AUTH_KEYLOGGED_IN_KEYNONCE_KEY这四个常量是必须的。你还可以通过AUTH_SALTSECURE_AUTH_SALTLOGGED_IN_SALTNONCE_SALT来增强安全性。

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

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

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

调试模式

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

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

禁止修改的

WP_DEBUGwp-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_LOGWP_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将改变它加载JSCSS文件的方式。默认情况下,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进行测试,避免线上网站出现问题。

发表评论

电子邮件地址不会被公开。 必填项已用*标注

Go