wp-config.php: constante în WordPress

Configurare și depanare WordPress 1.5

Fișierul de configurare al WordPress: datele bazei de date, prefixul tabelelor, cheile de securitate, adresele site-ului și alte constante.

Sintaxă
define( 'NUME_CONSTANTA', valoare );
$table_prefix = 'wp_';

Ce face wp-config.php: constante

wp-config.php stă în folderul principal al instalării și este citit la fiecare cerere, înainte de restul WordPress. La instalare este creat din wp-config-sample.php (sau cu wp config create din WP-CLI). Conține datele de conectare la baza de date (DB_NAME, DB_USER, DB_PASSWORD, DB_HOST, DB_CHARSET implicit utf8mb4, DB_COLLATE), variabila $table_prefix și cele opt chei și „salts” (AUTH_KEY … NONCE_SALT), pe care le generezi la https://api.wordpress.org/secret-key/1.1/salt/. Dacă schimbi cheile, toți utilizatorii sunt deconectați.

Alte constante utile: WP_HOME și WP_SITEURL suprascriu adresele din wp_options (cu https://, fără / la final), dar nu schimbă valoarea din baza de date. WP_MEMORY_LIMIT crește memoria PHP pentru WordPress (implicit WordPress încearcă 40M pe un site simplu și 64M pe multisite), iar WP_MAX_MEMORY_LIMIT (implicit 256M) se aplică în administrare. DISALLOW_FILE_EDIT dezactivează editorul de teme și pluginuri din administrare. WP_ENVIRONMENT_TYPE (din 5.5) poate fi local, development, staging sau production; o valoare necunoscută devine production.

Actualizările automate (introduse în 3.7) se controlează cu AUTOMATIC_UPDATER_DISABLED (true le oprește pe toate) și WP_AUTO_UPDATE_CORE: false (niciuna pentru nucleu), true (și versiunile majore) sau 'minor' (implicit, doar versiunile minore). Toate constantele se definesc înainte de linia /* That's all, stop editing! */; după ea se încarcă wp-settings.php. Schimbarea lui $table_prefix după instalare face ca WordPress să creadă că nu e instalat.

Parametri

Parametru Descriere
DB_NAME, DB_USER, DB_PASSWORD, DB_HOST Numele bazei de date, utilizatorul, parola și serverul MySQL (de obicei localhost).
DB_CHARSET, DB_COLLATE Setul de caractere pentru tabele (implicit utf8mb4) și colaționarea (implicit gol; nu le schimba dacă nu ești sigur).
$table_prefix Prefixul tabelelor, implicit wp_. Doar litere, cifre și underscore.
AUTH_KEY ... NONCE_SALT Opt chei și salts folosite la cookie-uri și nonce-uri. Valori lungi, aleatorii, unice pe site.
WP_HOME, WP_SITEURL Adresa site-ului și adresa fișierelor WordPress; suprascriu home și siteurl din wp_options.
WP_MEMORY_LIMIT Memoria PHP cerută pentru WordPress, de exemplu '256M'. Unele gazde nu permit creșterea.
DISALLOW_FILE_EDIT true ascunde editorul de fișiere pentru teme și pluginuri.
WP_ENVIRONMENT_TYPE local, development, staging sau production (implicit). Se citește cu wp_get_environment_type().
AUTOMATIC_UPDATER_DISABLED true oprește toate actualizările automate.
WP_AUTO_UPDATE_CORE false, true sau 'minor' (implicit) pentru actualizările automate ale nucleului.

Exemple

Exemplul 1: Un wp-config.php pentru site-ul unei cafenele

Datele bazei de date, prefix propriu, adrese fixe, memorie mai mare și editorul de fișiere dezactivat. Cheile sunt prescurtate aici; în fișierul real sunt 8 valori lungi și aleatorii.

<?php
define( 'DB_NAME', 'cafenea_iasi' );
define( 'DB_USER', 'cafenea_user' );
define( 'DB_PASSWORD', 'o-parola-lunga-si-unica' );
define( 'DB_HOST', 'localhost' );
define( 'DB_CHARSET', 'utf8mb4' );
define( 'DB_COLLATE', '' );

define( 'AUTH_KEY',         'valoare-aleatorie-1' );
define( 'SECURE_AUTH_KEY',  'valoare-aleatorie-2' );
// ... LOGGED_IN_KEY, NONCE_KEY, AUTH_SALT, SECURE_AUTH_SALT, LOGGED_IN_SALT, NONCE_SALT

$table_prefix = 'cf_';

define( 'WP_HOME', 'https://exemplu.ro' );
define( 'WP_SITEURL', 'https://exemplu.ro' );
define( 'WP_MEMORY_LIMIT', '256M' );
define( 'DISALLOW_FILE_EDIT', true );
define( 'WP_ENVIRONMENT_TYPE', 'production' );
define( 'WP_AUTO_UPDATE_CORE', 'minor' );
define( 'WP_DEBUG', false );

/* That's all, stop editing! Happy publishing. */

if ( ! defined( 'ABSPATH' ) ) {
    define( 'ABSPATH', __DIR__ . '/' );
}
require_once ABSPATH . 'wp-settings.php';

Exemplul 2: Cod diferit pe staging și pe site-ul live

Pe staging, wp-config.php are define( ‘WP_ENVIRONMENT_TYPE’, ‘staging’ ); în temă verificăm mediul cu wp_get_environment_type().

<?php
function dex_banda_staging() {
    if ( 'production' !== wp_get_environment_type() ) {
        echo '<p class="dex-staging">Copie de test: ' . esc_html( wp_get_environment_type() ) . '</p>';
    }
}
add_action( 'wp_body_open', 'dex_banda_staging' );

Ce afișează pagina

<p class="dex-staging">Copie de test: staging</p>

Exemplul 3: Citirea și schimbarea valorilor cu WP-CLI

wp config get citește o valoare, iar wp config shuffle-salts generează chei noi (toți utilizatorii vor trebui să se conecteze din nou).

wp config get table_prefix
wp config shuffle-salts

Ieșire în terminal

cf_
Success: Shuffled the salt keys.

Greșeli frecvente

  • Constante definite după linia /* That's all, stop editing! */: WordPress e deja încărcat și le ignoră.
  • Schimbarea lui $table_prefix pe un site instalat, fără redenumirea tabelelor: WordPress pornește din nou instalarea.
  • WP_HOME sau WP_SITEURL cu / la final sau fără https://: apar redirecționări greșite și linkuri stricate.
  • Cheile lăsate ca în exemplu (put your unique phrase here) sau publicate într-un depozit Git: generează-le unic pentru fiecare site și ține wp-config.php în afara depozitului.

Comenzi înrudite

  • WP_DEBUG și debug.log: Constantele din wp-config.php care pornesc modul de depanare și scriu erorile PHP în wp-content/debug.log în loc să le afișeze.
  • get_option / update_option: Citesc, salvează și șterg setări permanente ale site-ului în tabelul wp_options (Options API).
  • set_transient / get_transient: Transients API păstrează temporar un rezultat costisitor (un apel HTTP, o interogare), cu durată de expirare în secunde.