我想你说的是一个特定的网站wp-config.php
位于主题文件夹中的文件。
在加载wp-config.php
文件,WP没有完全加载,所以您没有任何常量或文件系统API或其他可用的基本API函数。
以下是我的做法:
结构
# Dir structure
~/ROOT
├── config
├── wp-content
│ ├── themes
│ └── plugins
│ └── mu-plugins
内部
config
文件夹中,我得到了所有特定于站点的配置文件。为了便于识别,它们以使用它们的域命名。
Thewp-config.php
# Config file suffix
! empty( $_SERVER[\'SERVER_NAME\'] ) AND $suffix = $_SERVER[\'SERVER_NAME\'];
! isset( $suffix ) AND ! empty( $_SERVER[\'HTTP_HOST\'] ) AND $suffix = $_SERVER[\'HTTP_HOST\'];
# CONFIG FILE PATH: Sub of root ~/config
$config_path = dirname( __FILE__ ).DS.\'config\';
// inside wp-config.php
# LOAD CONFIG FILE
// local
if ( file_exists( "{$config_path}/_local.php" ) )
{
require( "{$config_path}/_local.php" );
}
// Stage
elseif ( file_exists( "{$config_path}/{$suffix}-stage.php" ) )
{
require( "{$config_path}/{$suffix}-stage.php" );
}
// Production
elseif ( file_exists( "{$config_path}/{$suffix}.php" ) )
{
require( "{$config_path}/{$suffix}.php" );
}
unset( $suffix, $config_path );
解释和缺陷
DS
只是一个短常量,用于包装
DIRECTORY_SEPARATOR
. 由于我在很多地方都使用它,并且喜欢缩短线路,所以我设置了它。
所以$suffix
是我从SERVER_NAME
或者HTTP_HOST
. 关键是你不能确定哪一个被设置了。因此,我正在测试两者。
这个$config_path
简单地说就是当前文件的路径+一个名为config
在它下面的水平面上。
文件本身命名为example.com.php
. 因此,我可以通过识别域轻松找到它们,我就完成了。这有助于保持清洁。
我做的第一个检查是_local.php
保存本地配置的文件。我跳过了这一步,删除了我在服务器上使用的文件的那些行。它只是为了让我的本地安装程序运行。
第二项检查是针对stage
文件这也将在生产站点上删除。
我希望这能帮助其他人避免类似的事情the setup shown here.