wp-config.php 文件的开发人员高级指南

已发表: 2022-09-28

你对wp-config了解多少? 在这几行 PHP 中有惊人的力量! 本文介绍了一些您可能不知道但确实应该知道的wp-config

您知道关于wp-config.php文件的所有信息吗? 您是否阅读了有关它的整个WordPress 文档页面? 一直到最后?

如果您已经熟悉wp-config的基础知识,那么阅读官方 WordPress 文档可能会是一个适当的打盹节。

如果您想要真正的开发人员款待,按主题很好地分组,并以只能称为“对几个 PHP 常量完全不必要的热情”的方式交付,那么请坚持:我即将让wp-config.php再次变得酷。

来自辛普森一家的米尔豪斯,脸上写着“wp-config”,标题是“我妈妈说我很酷”。

目录

  1. 谁应该读这个?
  2. 你为什么要读这个?
  3. 基础知识
  4. 查看 wp-config 常量
  5. 分解wp-config.php加载过程
    1. wp-config 可以上移
    2. 如果没有 wp-config.php 文件,则会加载设置屏幕
    3. wp-config.php 很早就加载
    4. 不要乱用 wp-config.php!
  6. 检查/检查您的 wp-config.php 文件
  7. 使用 wp-config.php 保护 WordPress
    1. 从网站访问者保护 wp-config.php
    2. 旋转键/盐
    3. 移动和隐藏东西
    4. 禁用文件编辑器
    5. 禁用自动更新
    6. 防止外部 HTTP 请求
  8. 移动东西
    1. 移动用户和用户元表
    2. 移动内容、上传和插件目录
  9. 内容相关设置
    1. 更改站点和仪表板 URL
    2. 帖子设置
    3. 发布修订
    4. 更改自动保存间隔
  10. 包起来

谁应该读这个?

本文面向已经知道如何编辑wp-config.php文件并了解可以放入其中的一些配置设置的开发人员和高级用户。

我不会告诉你如何使用 FTP 或 cPanel 编辑文件,或者为什么你不应该使用 MS Word 来编辑它。

我不会告诉你如何配置你的数据库或回顾你在 2013 年使用的旧设置,但实际上应该不再需要了。 无论如何,大多数主机都会为您处理基础知识。

如果您是wp-config.php的新手,那么不乏可以为您提供基础知识的指南,或者您可以随时深入研究官方文档。

你为什么要读这个?

是的,是的,我听到了。 如果您可以在本文中添加的基本细节都在其他地方介绍过,并且如果您的主机无论如何都处理了大部分基础知识,那么您为什么要阅读这篇文章? 而且,确实,我为什么要花时间写它?

好吧,如果您对编辑wp-config.php感到满意,并且知道它的基本功能,那么您可能至少是一名中级 WordPress 开发人员。

您可能至少部分负责托管大型网站,可能是客户。 所以你需要知道如何在紧急情况下使用这个文件。 为了对这个文件有足够的了解,如果你编辑它,你就不会做错什么。

此外,您几乎肯定会希望锁定 WordPress 的某些功能,超出您的主机允许您自动配置的功能。

很可能有些事情你甚至不知道你可以wp-config.php做! 一些“啊哈!” 值得拥有的时刻。

本文是配置一些 WordPress 内部的有用参考点。 因此,请继续阅读、添加书签并与您的朋友和同事分享。

基础知识

我说这不是初学者的文章,但我们应该建立基本事实以确保我们处于同一起点。

wp-config.php文件位于 WordPress 安装的根目录中(它可以位于其他位置,但我们会谈到这一点),作为 WordPress 初始化的一部分加载,并允许您配置 WordPress 核心。

它对 WordPress 的运行至关重要。 它存储一组常量,让您指定:

  • WordPress 使用的数据库连接和表前缀。
  • 安全信息,如盐和身份验证密钥。
  • WordPress 核心的其他功能的设置,例如WP_CACHEWP_DEBUG
  • 可以将自己的选项添加到文件的插件的设置。
  • 您自己的配置选项。

至关重要的是, wp-config.php是一个特定于环境的文件。 它的内容可以(并且应该!)对于不同的站点是不同的。 即使是同一站点的本地副本、暂存副本和实时副本,文件中的值也会不同。

WordPress 附带一个wp-config-sample.php文件,其中包含 WordPress 工作所需的最少细节。 作为安装的一部分,您可以将其复制到您自己的wp-config.php中,但这些天通常会为您完成。

最后,请注意,当您从现有站点打开wp-config.php文件时,您可能会看到一些旧的 PHP 常量用于旧功能,例如默认文件权限和用于运行升级的 FTP 凭据。 我们不会在这里介绍这些内容,因为您不太可能需要使用它们。

查看 wp-config 常量

有几种方法可以快速检查 WordPress 常量的值,而无需通过 SSH 连接到远程服务器并打开文件。

WordPress 核心的站点健康功能允许您通过导航到工具 -> 站点健康 -> 信息 -> WordPress 常量来查看一些基本值。 数据库常量也可以在同一页面的“数据库”部分中看到。

数据库常量,显示在 WordPress 站点健康页面的数据库部分。

查询监视器插件有一个“环境”面板,您可以在其中看到一些常用的wp-config常量。

查询监视器插件的“环境”面板,显示了一些常用的 wp-config 常量。

WordPress 命令行界面 WP-CLI 有一个wp config命令,可用于获取和设置wp-config.php中的常量。 这通常需要您首先使用 SSH,但如果您在 WP-CLI 配置中设置别名,则可以创建快速快捷方式来查看和修改远程wp-config文件中的常量。

分解wp-config.php加载过程

知道wp-config.php文件何时加载很有用,因为这决定了您可以用它做的一些事情和不能做的事情。 跟踪加载过程是一个很好的练习:

  • WordPress 开始加载index.php文件。 这需要wp-blog-header.php文件。

  • wp-blog-header.php做的第一件事就是加载wp-load.php

  • 接下来, wp-load.php设置 ABSPATH 常量(基础 WordPress 核心目录)并在加载wp-config.php之前初始化error_reporting()

这个加载过程,尤其是wp-load.php中的代码,可以教会我们一些有趣的事情。 这是该代码:

 /* * If wp-config.php exists in the WordPress root, or if it exists in the root and wp-settings.php * doesn't, load wp-config.php. The secondary check for wp-settings.php has the added benefit * of avoiding cases where the current directory is a nested installation, eg / is WordPress(a) * and /blog/ is WordPress(b). * * If neither set of conditions is true, initiate loading the setup process. */ if ( file_exists( ABSPATH . 'wp-config.php' ) ) { /** The config file resides in ABSPATH */ require_once ABSPATH . 'wp-config.php'; } elseif ( @file_exists( dirname( ABSPATH ) . '/wp-config.php' ) && ! @file_exists( dirname( ABSPATH ) . '/wp-settings.php' ) ) { /** The config file resides one level above ABSPATH but is not part of another installation */ require_once dirname( ABSPATH ) . '/wp-config.php'; } else { // A config file doesn't exist. // [Code here to load the setup screen for in-browser configuration] }

我们在这里看到了什么?

wp-config.php 可以上移

首先,注释告诉我们可以将wp-config.php放在“WordPress 根目录”中。 它没有提到的是“根”实际上可以是wp-load.php ABSPATH的 ABSPATH之上的目录。

我们可以在寻找dirname( ABSPATH ) . '/wp-config.php'elseif中看到这个额外的检查。 dirname( ABSPATH ) . '/wp-config.php' 。 注释中解释了elseif中的附加条件。

如果没有 wp-config.php 文件,则会加载设置屏幕

其次,我们可以看到,如果配置文件不存在,它将加载设置屏幕。

您完全有可能以前从未见过这个屏幕。 它允许您在基于 Web 的用户界面中输入初始配置信息,例如数据库凭据:

很少见的 WordPress 设置屏幕。如果 WordPress 找不到配置文件,它会加载它,允许您手动设置配置选项。

这是WordPress值得了解的一个功能。 如果您曾经将 WordPress 核心文件放在公开可用的 Web 服务器上,但没有创建wp-config.php文件,那么其他人(或者更有可能是机器人)可以出现并以他们的方式设置 WordPress并可能损害您的托管。

wp-config.php 很早就加载

第三点要注意的是wp-config.php在 WordPress 的启动序列中很早就被加载了。 这意味着:

  1. wp-config.php中有很多我们不能做的事情。 例如,我们不能在此处添加钩子(操作或过滤器),因为用于执行此操作的函数和数据结构尚未加载。 而且我们无权访问 WordPress 的任何内部函数、对象和 API。

  2. 我们对接下来发生的事情有很大的控制权。 因为文件加载得这么早,所以对 WordPress 有很大的影响。 这既好又坏。 我们可以很容易地让 WordPress 彻底死掉。 但我们也可以从 WordPress 的几乎任何其他地方访问wp-config.php中定义的任何内容。

不要乱用 wp-config.php!

我们从这个过程中学到的最后一件事是,这种强大的力量伴随着巨大的责任。

wp-config.php文件的底部是这些行:

 /* Add any custom values between this line and the "stop editing" line. */ /* That's all, stop editing! Happy publishing. */ /** Absolute path to the WordPress directory. */ if ( ! defined( 'ABSPATH' ) ) { define( 'ABSPATH', __DIR__ . '/' ); } /** Sets up WordPress vars and included files. */ require_once ABSPATH . 'wp-settings.php';

这里有一些说明,但“停止编辑”这一行很重要。 此行之后是 WordPress 初始化序列的延续。 在错误的地方添加新代码可能只会导致新代码没有任何效果。 但为了安全起见,我建议遵循这些说明。 他们在那里是有充分理由的。

检查/检查您的 wp-config.php 文件

如果您在生产环境中工作,您真的不想在wp-config.php文件中添加任何错误。 此处的错误可能会破坏您的网站,并且您可能不会收到有用的错误消息。

您可以使用-l (“lint”)选项在命令行上运行php ,以检查wp-config.php文件中是否存在致命的 PHP 语法错误。

$ php -l wp-config.php

解析错误:语法错误,第 9 行 wp-config.php 中的意外标记“require_once”

解析 wp-config.php 时出错

你甚至可以编写一个 shell 脚本来...

  1. wp-config.php复制到临时文件中,
  2. 编辑临时文件,
  3. 对临时文件进行 Lint,然后
  4. 仅当它没有语法错误时才将其复制回来。

如果您对命令行感到满意,那么使用诸如wp config set <name> <value>之类的 WP-CLI 命令来安全地设置值比手动操作更安全。

你也可以使用 WP-CLI 列出你的配置值(这是一个删除了一些条目的示例——你明白了!):

$ wp 配置列表
+---------------------+-------------------------- --------------------+----------+
| 姓名 | 价值 | 类型 |
+---------------------+-------------------------- --------------------+----------+
| 根目录 | /用户/smithers/站点/snpp | 变量 |
| webroot_dir | /Users/smithers/sites/snpp/public | 变量 |
| 表前缀 | wp_ | 变量 |
| WP_HOME | https://snpp.test | 常数 |
| WP_SITEURL | https://snpp.test/ | 常数 |
| 数据库名 | snpp | 常数 |
| 数据库用户 | 根 | 常数 |
| DB_PASSWORD | 蒙哥马利 | 常数 |
| 数据库主机 | 127.0.0.1 | 常数 |
| DB_CHARSET | utf8mb4 | 常数 |
| DB_COLLATE | | 常数 |
| DB_PREFIX | wp_ | 常数 |
| WP_DEBUG | 1 | 常数 |
| WP_DEBUG_LOG | 1 | 常数 |
| WP_DEBUG_DISPLAY | | 常数 |
| WP_ENVIRONMENT_TYPE | 发展| 常数 |
| DISABLE_WP_CRON | | 常数 |
| DISALLOW_FILE_EDIT | 1 | 常数 |
+---------------------+-------------------------- --------------------+----------+

这两种技术确实可以为您省去一些麻烦,并且不会让您担心在如此重要的文件中不小心将分号放在错误的位置。

使用 wp-config.php 保护 WordPress

安全性是 WordPress 中一个永远热门的话题。 我们可以在wp-config文件中更改的一些设置将更多工具放入我们的安全工具箱中。

wp-config文件的这些部分绝对不是您应该使用的唯一东西来实现良好的 WordPress 安全性。 除了以下部分中的信息外,请确保您彻底了解网站安全性。

从网站访问者保护 wp-config.php

默认情况下,您的wp-config文件位于您网站的根目录中,它恰好包含关键信息,例如您的数据库登录详细信息和密码盐。 您希望这些信息公开可用,因此您应该确保您的wp-config文件受到网站访问者的保护。

您的托管公司通常会为您执行此操作。 您可以通过在您的域之后添加/wp-config.php来尝试从浏览器访问文件来进行检查。 如果您移动了文件,此 URL 可能会有所不同。

如果您已将wp-config文件放在网站根目录上方的目录中,那么您应该看不到它。 在大多数其他情况下,无论如何尝试访问该文件时,您只会收到一条 PHP 错误消息,因此这里通常无事可做。 但是,如果您想正确保护它,那么您可以通过修改您的 Web 服务器(Apache 或 nginx)配置来阻止对它的访问。

最后,如果您将网站文件存储在 Git 中,重要的是不要wp-config文件存储在 Git 存储库中。 这样做可能会泄漏有关您站点的关键信息,但此外,您可能希望在每个环境中都使用此文件的不同版本。 所以最好将它添加到你的.gitignore并手动管理每个环境中的文件。

旋转键/盐

什么是键/盐?

键和盐部分是wp-config中更神秘的部分之一。 这组看起来很奇怪的常量有助于加密 cookie 和 nonce 之类的东西。 无需深入细节——正如 WP Engine 所拥有的——它们添加了一层额外的随机性,如果你不知道盐和密钥,这会使事情更难解密。

为什么要“旋转”键/盐?

首先,“旋转”只是“改变”的一个花哨的词。 我不知道为什么我们使用“旋转”。 这不像我们曾经回到同一组钥匙!

如果网站被黑客入侵,您可能应该更改您的密钥和盐,因为您不能保证密钥和盐仍然是秘密的。 但是无论如何,您可能希望定期轮换它们,例如使用密码,以确保没有人知道它们是什么。

旋转键/盐的问题

更改键和盐并非没有痛苦。 任何拥有 cookie 集的人都会丢失它。 因此,任何登录的人都会被踢出,任何拥有 WooCommerce 购物车的人都会被清空。

如何旋转键/盐

我的意思是,您可以编辑wp-config文件并在旧字符上键入一些新的随机字符。 但这会很乏味,而且人类不太擅长随机性。

因此,让我告诉您一些在wp-config中设置新键/盐的方法。

  1. 从生成器手动添加密钥:您可以使用 wordpress.org 生成器来获取您需要的代码。 只需将其复制并粘贴到wp-config文件中即可代替旧值。
  2. 使用插件:许多安全插件,如 Sucuri Security、iThemes Security 和 Malcare 都具有此功能。 Salt Shaker 是一个专用插件,可以按计划为您自动执行此过程。
  3. 使用 WP-CLI。 我们说过 WP-CLI 有多棒了吗? 我们做到了? 好的。 好吧,我们再说一遍! 您可以使用wp config shuffle-salts命令在几秒钟内完成这项工作。

移动和隐藏东西

安全人员会告诉你,“默默无闻的安全”根本不是安全,但有些人仍然喜欢隐藏他们的 WordPress 内容,以便为黑客设置一些额外的障碍。

wp-config文件为您提供了许多用于执行此操作的选项,我们将在后面的有关移动内容和关闭文件编辑的部分中介绍这些选项。

禁用文件编辑器

WordPress 有一个方便的功能,允许您从管理仪表板内部编辑主题和插件中的文件。 编辑wp-config.php可以让您关闭这些文件编辑器! 有些人为了安心而喜欢禁用它们。

现在我知道有一个安全论点,即如果有人对您的站点具有管理员访问权限——这是使用这些编辑器所必需的——那么他们可以上传插件并做任何他们喜欢的事情。 启用这些编辑器并没有为黑客提供比他们已经拥有的更多的权力。

但是,尽管关闭这些功能实际上可能不会提高安全性,但这样做的真正原因是阻止实际被授权为管理员的人使用它们。 如果您是代理商,您可能不希望您的客户发现他们可以编辑所有主题文件,对吗?

默认情况下,许多主机只会禁用此功能。 但是如果你想让它们消失,就像添加一样简单:

 define( 'DISALLOW_FILE_EDIT', true );

或者,如果您真的想锁定您的文件系统,可以使用DISALLOW_FILE_MODS ,我们将在下一节中介绍。

禁用自动更新

无论您喜欢还是讨厌它们,WordPress 的自动更新都对 WordPress 生态系统产生了积极的影响,并且难以忽视。 但并不是每个人都希望他们的软件能够自理!

因此wp-config让您可以通过一组简单的、您可以设置的不言自明的常量来控制自动更新过程:

 # Disable all core updates: define( 'WP_AUTO_UPDATE_CORE', false ); # Enable all core updates, including minor and major: define( 'WP_AUTO_UPDATE_CORE', true ); # Enable core updates for minor releases (default): define( 'WP_AUTO_UPDATE_CORE', 'minor' );

如果你想要更极端的东西,你可以DISALLOW_FILE_MODS

 define( 'DISALLOW_FILE_MODS', true );

但这会阻止 WordPress 将任何与核心、主题、插件或翻译相关的内容写入磁盘,并且会禁用有关小更新的电子邮件通知。 一位核心贡献者将其描述为“除非你确切地知道自己在做什么,否则使用起来非常愚蠢”。

稍微不那么极端的是AUTOMATIC_UPDATER_DISABLED 。 这使您可以安装插件和主题,但不会更新它们或核心软件。 不过,它也会禁用翻译更新。

 define( 'AUTOMATIC_UPDATER_DISABLED', true );

wordpress.org 上有关于这一切的详细指南,包括其他一些选项,例如使用过滤器进行更细粒度的控制。

最后,我注意到如果你的网站是版本控制的,那么很可能 WordPress 已经为你禁用了更新。 例如,站点根目录(或不同位置的各种其他文件)中存在.git目录将禁用自动更新,而无需向wp-config添加任何内容。

配置 HTTPS

配置 HTTPS 通常具有挑战性。 随着来自 LetsEncrypt 和 Cloudflare 等地方的免费、受信任的安全证书的出现,许多主机只需单击几下即可为您设置。 这个设置可能应该被认为是遗留的,但也许你仍然需要它来做一些事情。

FORCE_SSL_ADMIN常量告诉 WordPress始终将 SSL 用于登录页面和 WordPress 仪表板。 这确保了安全凭证和 cookie 不能在未加密的情况下发送。

但是,就像我说的那样,一家好的托管公司无论如何都会让在您的网站上设置 HTTPS 变得简单,所以就去做吧。

防止外部 HTTP 请求

最后,在安全方面,您可以阻止外部 HTTP 请求。 这意味着 WordPress 无法联系互联网上的其他地方来执行 API 调用或下载更新等操作。

允许 WordPress 通过 HTTP 联系外部服务通常是一个好主意,因为它可以让您获取更新、安装插件和主题,如果您关闭 HTTP 请求,许多插件将会中断。

但是 WordPress 核心和许多插件和主题将“遥测”或“使用数据”发送回中央服务器。 这可能很好——它可以帮助插件和主题开发人员了解谁在使用他们的软件以及如何使用。 但是,如果您的网站上有特别敏感的数据,您可能需要禁用此功能。 你可以这样做:

 define( 'WP_HTTP_BLOCK_EXTERNAL', true );

如果您想要一个可以联系的主机的允许列表,那么您也可以这样做:

 define( 'WP_ACCESSIBLE_HOSTS', 'api.wordpress.org,*.github.com' );

请注意,可访问主机列表是逗号分隔的列表,并且允许使用通配符子域。 您可以使用 Log HTTP Requests 插件监控正在联系的主机。

移动东西

并非每个 WordPress 安装都是相同的。 出于安全原因,某些主机或框架喜欢移动目录或将特定于站点的代码和资产与 WordPress 核心分开。 我关于使用 Git 和 Composer 管理 WordPress 的文章介绍了这种方法的一些好处。

那么 WordPress 为您提供了哪些选项——因为需要一个更好的术语——“移动东西”?

更改数据库前缀

WordPress 默认使用数据库表名前缀wp_ 。 这个前缀被添加到所有数据库表名中,并且也在其他一些地方使用,例如选项表中的<prefix>user_roles选项和<prefix>capabilities用户元条目。

黑客或攻击者可能会在攻击中使用默认前缀,试图发现或修改您的数据库表。 因此,有些人建议将其从默认值更改。

wp_config选项$table_prefix允许您执行此操作,您可能应该将其设置为一些简短但随机的字符串,并以下划线为后缀:

 $table_prefix = 'b4F8az_';

这将告诉 WordPress 使用诸如b4F8az_posts之类的表名而不是wp_posts

您不必更新任何代码来适应这种变化(除非代码写得非常糟糕),但是如果您在现有站点上更改它,您将不得不对您的数据库进行一些更新——而不仅仅是重命名桌子!

一些安全插件会为您执行此操作,并且有一个插件也可以执行此操作。 我们强烈建议在执行此操作之前备份您的数据库,并注意最好在安装 WordPress 时选择非默认表前缀,而不是在站点运行时更改它。

一个奇怪的注释是$table_prefix是一个变量,而不是一个常量。 它是 WordPress 为您提供的示例配置文件中定义的唯一变量! 如果您仍然好奇:是的,WP-CLI 的wp config命令会为您解决这个问题,您甚至不必知道!

移动用户和用户元表

我从来没有见过这样做的,我在写这篇文章时才知道可以这样做,但是你也可以完全改变用户和用户元表的名称。

我想这有助于防止尝试“SELECT * FROM wp_usermeta;”的 SQL 注入攻击,但我很高兴听到其他原因。

在任何情况下,您都需要CUSTOM_USER_TABLECUSTOM_USER_META_TABLE常量:

 define( 'CUSTOM_USER_TABLE', $table_prefix.'my_users' ); define( 'CUSTOM_USER_META_TABLE', $table_prefix.'my_usermeta' );

在使用这些常量之前,有一些注意事项值得了解。 使用此功能前请查看官方文档。 就像使用自定义表前缀一样,这绝对是安装新站点时最好的做法,而不是以后修改它。

移动内容、上传和插件目录

也可以移动整个wp-content目录、 uploads目录以及themesplugins目录。 注意事项:

  • 在某些情况下,您需要设置 URL 以及目录。
  • 您需要小心使用完整路径或适当的相对路径。
  • 这些设置都不应该有斜杠。

有关详细信息,请参阅官方文档——我不会在这里重复所有这些。

最后,请注意,如果您更改这些,编码错误的插件或主题可能会搞砸。 这绝不应该发生,但值得了解。

如果您是插件或主题开发人员,请务必记住这些路径可以更改。 因此,请确保不要对目录或 URL 的路径进行硬编码。 这里对您有用的功能是:

wp_upload_dir
plugins_url
plugin_dir_url
plugin_dir_path
get_stylesheet_directory
get_stylesheet_directory_uri
get_template_directory – 请注意,对于子主题,这将返回父主题的位置
get_template_directory_uri

在 WordPress 开发人员手册中有更详尽的功能列表。

最后,除了在 WordPress 安装中移动文件外,您可能还想移动 wp-admin 位置,或更改站点的位置。 wp-config.php也可以提供帮助。

内容相关设置

毕竟,WordPress 是一个内容管理系统。 因此,您会期望可以在wp-config.php中使用一些常量来控制内容选项。 让我们看看,看看我们能做些什么。

更改站点和仪表板 URL

这些一直让我困惑。

要设置站点的 URL,您需要使用WP_HOME常量,而不是WP_SITEURL常量。

WP_SITEURL常量不会更改您网站的 URL。

使困惑?

WP_SITEURL的官方描述是“你的 WordPress 核心文件所在的地址”。 这也令人困惑,因为它是 URL,而不是目录。

不要怪我,我只是你当天的导游!

设置WP_HOMEWP_SITEURL会覆盖wp_options数据库表中的homesiteurl条目。 所以,至少,这是有道理的。

 // NOTE: These must not have trailing slashes define( 'WP_HOME', 'https://helfish.media' ); define( 'WP_SITEURL', 'https://hellfish.media/wordpress` );

您可以在将站点移动到新 URL 后使用这些常量,以便在正确修复数据库的同时启动并运行站点。 您甚至可以选择在之后将它们留在原处。

当您将核心 WordPress 文件移动到不同的目录时,也可以使用WP_SITEURL设置。

使用这些还可以防止运行一两个数据库查询以从选项表中获取值,因此它可能会获得边际性能增益。 虽然如果你正在做对象缓存,那么增益可能可以忽略不计。

官方文档中有更多详细信息,甚至还有关于更改站点 URL 的完整支持文章。 此外,该文章还包括wp-config.php的晦涩RELOCATE常量,我在研究本文之前从未听说过。

最后,在移动站点时,请注意这不是您唯一需要更改的内容。 建议对 URL 字符串进行完整的数据库搜索和替换。

帖子设置

当涉及到帖子时,您可以修改一些不同的设置。 其中大多数与后期修订或自动保存功能有关。

发布修订

WordPress 的默认行为是保存对帖子和页面所做的所有修订。 这样做的好处是很容易恢复到以前的版本。 缺点是所有这些修订都会占用数据库中的空间,并且会通过减慢数据库查询来影响站点性能。

可以通过修改wp-config.php文件中的WP_POST_REVISIONS值来完全禁用后期修订。 它默认为真。 要关闭修订,您可以将其设置为 false:

 define( 'WP_POST_REVISIONS', false );:

某些主机,包括 WP Engine,默认禁用后期修订。 我建议在进行任何更改之前咨询您的托管服务提供商。 这因主机而异,但如果您使用 WP Engine,则无法通过wp-config启用修订,因为它将在服务器级别被覆盖。

如果您的主机控制它并且您尝试更改它,您不一定会破坏某些东西,但您可能会浪费您的时间。

如果担心后期修订会减慢数据库查询速度,更好的选择可能是限制 WordPress 存储的修订数量。 这由WP_POST_REVISIONS常量控制,您可以将其设置为要保留的最大修订数:

 define( 'WP_POST_REVISIONS', 5 );

更改自动保存间隔

您还可以减少自动保存触发的频率。 这默认为每 60 秒一次,但您可以将其更改为您喜欢的任何内容。 如果您偏执,您可能希望将其设置为 20 或 30 秒。

重要的是要记住自动保存需要多长时间。 您不希望它们因过于频繁地发生而重叠,因此不要将此值设置为例如一秒。 自动保存时间不太可能超过默认的 60 秒,但如果您希望保存请求,可以增加间隔:

 define( 'AUTOSAVE_INTERVAL', 120 ); // Seconds

包起来

wp-config中有很多潜力等待解锁。 我希望这次旅行有助于突出一些可能的事情。 在以后的文章中,我将研究wp-config中固有的更多高级功能,包括多站点安装和调试。 我还将研究性能,包括如何调整内存限制、CRON 问题和环境类型。

毫无疑问,官方文档中还潜藏着其他宝藏,等待被发现。 您发现了哪些使用wp-config的技巧? 在评论中告诉我。