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_prefixpe un site instalat, fără redenumirea tabelelor: WordPress pornește din nou instalarea. WP_HOMEsauWP_SITEURLcu/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 ținewp-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.