Configuring wp-config.php

Understand how to adjust and customize the WordPress configuration file for your Pantheon WordPress site.

Contributors: Mason James


Overview

WordPress configuration is set in wp-config.php, located within your WordPress site root. When you install a WordPress site, we automatically include this file for you with all the boilerplate you need to get started. Most users will not need to customize this file.

Pantheon uses environment variables to automatically supply configuration settings (e.g. Database credentials) dynamically to wp-config.php - no editing required. However, you are welcome to customize wp-config.php with any customizations you may need for plugins, themes, and caching.

Local Database Configuration for Development

If you are also developing locally and need to configure WordPress for your desktop environment, we recommend you create a wp-config-local.php file. This will be ignored by Pantheon and should not be tracked by version control by default since it's in the .gitignore file.

Pantheon's WordPress Config

Frequently Asked Questions

How can I write logic based on the Pantheon server environment?

Depending on your use case, there are two possibilities.

For web only actions, like redirects, check for the existence of $_ENV['PANTHEON_ENVIRONMENT']. If it exists, it will contain a string with the current environment (Dev, Test, or Live).

For actions that should take place on both web requests and wp-cli commands (e,g, Redis cache configuration), use the constant ​PANTHEON_ENVIRONMENT. Again, it will contain Dev, Test, or Live.

As an example, here's how you can hard-code your WordPress debug configuration based on the environment. To learn more, see Defining variables in a wp-config.php.

How can I read the Pantheon environmental configuration, like database credentials?

See Reading the Pantheon Environment Configuration.

How do I perform redirection?

See Domains and Redirects.

Where do I specify database credentials?

You don't have to! Pantheon automatically injects database credentials into the site environment; if you hard code database credentials, you will break the Pantheon workflow.

Where can I get a copy of a default wp-config.php for Pantheon?

Where can I find examples of Pantheon wp-config.php?

You can view examples at the pantheon-settings-examples repo.

Troubleshooting

Request to a Remote API Does Not Return Expected Response

The PHP 5.5 default is & and the PHP 5.3 default is &.

If the API expects & as an argument separator but receives & (for example, when using http_build_query), you can override the default arg_separator.ouput value by adding the following line to wp-config.php:

ini_set('arg_separator.output', '&');