La Guida avanzata per sviluppatori al file wp-config.php
Pubblicato: 2022-09-28 Quanto conosci davvero wp-config
? C'è una sorprendente quantità di potenza in quelle poche righe di PHP! Questo articolo è un tour di alcuni frammenti di wp-config
di cui forse non sapevi, ma che in realtà dovresti.
Sai tutto quello che c'è da sapere sul file wp-config.php
? Hai letto l' intera pagina della documentazione di WordPress a riguardo? Fino alla fine?
Se hai già familiarità con le basi di wp-config
, leggere la documentazione ufficiale di WordPress sarà probabilmente un vero e proprio snooze fest.
Se vuoi che le vere prelibatezze per sviluppatori, raggruppate bene per argomento e consegnate con quello che potrebbe essere chiamato solo "entusiasmo totalmente inutile per alcune costanti PHP", allora resta: sto per rendere di nuovo interessante wp-config.php
.
Sommario
- Chi dovrebbe leggere questo?
- Perché dovresti leggere questo?
- Le basi
- Visualizzazione delle costanti wp-config
- Scomporre il processo di caricamento
wp-config.php
- wp-config può essere spostato in alto
- La schermata di configurazione viene caricata se non è presente un file wp-config.php
- wp-config.php si carica molto presto
- Non scherzare con wp-config.php!
- Controllo/Linting del file wp-config.php
- Protezione di WordPress con wp-config.php
- Protezione di wp-config.php dai visitatori del sito web
- Chiavi/Sali rotanti
- Spostare e nascondere le cose
- Disabilitazione degli editor di file
- Disabilitazione degli aggiornamenti automatici
- Prevenire le richieste HTTP esterne
- Spostare cose in giro
- Spostamento delle tabelle User e Usermeta
- Sposta le directory di contenuti, caricamenti e plugin
- Impostazioni relative ai contenuti
- Modifica gli URL del sito e del dashboard
- Impostazioni post
- Post Revisioni
- Modifica dell'intervallo di salvataggio automatico
- Avvolgendo
Chi dovrebbe leggere questo?
Questo articolo è rivolto a sviluppatori e utenti avanzati che sanno già come modificare il file wp-config.php
e sono a conoscenza di alcune delle impostazioni di configurazione che è possibile inserirvi.
Non ti dirò come modificare il file usando FTP o cPanel, o perché non dovresti usare MS Word per modificarlo.
Non ti dirò come configurare il tuo database o esaminare le impostazioni legacy che stavi utilizzando nel 2013 ma in realtà non dovresti averne più bisogno. E la maggior parte degli host si prenderà comunque cura delle basi per te.
Se non wp-config.php
, non mancano le guide che ti daranno le basi, oppure puoi sempre scavare nella documentazione ufficiale.
Perché dovresti leggere questo?
Sì, sì, ti sento. Se i dettagli di base di ciò che puoi inserire in questo articolo sono tutti trattati altrove e se il tuo host si occupa comunque della maggior parte delle basi, perché dovresti leggere questo? E, infatti, perché passo il mio tempo a scriverlo?
Bene, se sei soddisfatto della modifica wp-config.php
e conosci le basi di ciò che fa, probabilmente sei almeno uno sviluppatore WordPress di livello intermedio.
Probabilmente sei almeno in parte responsabile dell'hosting di siti di grandi dimensioni, probabilmente per i clienti. Quindi devi sapere come puoi utilizzare questo file in caso di emergenza. E per avere una comprensione sufficiente di questo file che, se lo modifichi, non farai qualcosa di sbagliato.
Inoltre, quasi sicuramente vorrai bloccare alcune funzionalità di WordPress oltre a ciò che il tuo host ti consentirà di configurare automaticamente.
È probabile che ci siano cose che non sai nemmeno di poter fare con wp-config.php
! Alcuni "Ah!" momenti da vivere.
Questo articolo è un utile punto di riferimento per la configurazione di alcuni interni di WordPress. Quindi continua a leggere, aggiungi ai preferiti e condividi con i tuoi amici e colleghi.
Le basi
Ho detto che questo non era un articolo per principianti, ma dovremmo stabilire i fatti di base per assicurarci di essere allo stesso punto di partenza.
Il file wp-config.php
risiede nella radice della tua installazione di WordPress (può risiedere in altri posti, ma ci arriveremo), viene caricato come parte dell'inizializzazione di WordPress e ti consente di configurare il core di WordPress.
È essenziale per il funzionamento di WordPress. Memorizza un insieme di costanti che consentono di specificare:
- La connessione al database e il prefisso della tabella utilizzati da WordPress.
- Informazioni sulla sicurezza come sali e chiavi di autenticazione.
- Impostazioni per altre funzionalità del core di WordPress come
WP_CACHE
eWP_DEBUG
. - Impostazioni per plugin che possono aggiungere le proprie opzioni al file.
- Le tue opzioni di configurazione.
Fondamentalmente, wp-config.php
è un file specifico dell'ambiente. I suoi contenuti possono (e dovrebbero!) essere diversi per i diversi siti. Anche le copie locali, di staging e live dello stesso sito avranno valori diversi nel file.
WordPress viene fornito con un file wp-config-sample.php
che contiene il minimo indispensabile di dettagli di cui WordPress ha bisogno per funzionare. Puoi copiarlo sul tuo wp-config.php
come parte dell'installazione, ma in questi giorni di solito è fatto per te.
Infine, tieni presente che è possibile che quando apri un file wp-config.php
da un sito esistente potresti vedere alcune vecchie costanti PHP per funzionalità legacy come i permessi dei file predefiniti e le credenziali FTP per l'esecuzione degli aggiornamenti. Non li tratteremo qui perché è improbabile che tu debba usarli.
Visualizzazione delle costanti wp-config
Esistono alcuni modi per controllare rapidamente i valori delle costanti di WordPress senza eseguire SSH su un server remoto e aprire il file.
La funzione Site Health del core di WordPress ti consente di visualizzare alcuni valori di base navigando su Strumenti -> Salute del sito -> Info -> Costanti di WordPress. Le costanti del database sono visibili anche nella sezione “Database” della stessa pagina.
Il plug-in Query Monitor ha un pannello "Ambiente" in cui puoi vedere alcune costanti wp-config
comunemente usate.
WP-CLI, l'interfaccia della riga di comando di WordPress, ha un comando wp config
che può essere utilizzato per ottenere e impostare costanti in wp-config.php
. Ciò normalmente richiederebbe prima l'SSH, ma se imposti gli alias nella tua configurazione WP-CLI, puoi creare un collegamento rapido per visualizzare e modificare le costanti nei file wp-config
remoti.
Scomporre il processo di caricamento wp-config.php
È utile sapere quando viene caricato il file wp-config.php
, poiché ciò determina alcune delle cose che puoi e non puoi fare con esso. È un buon esercizio per tracciare il processo di caricamento:
WordPress inizia il caricamento con il file
index.php
. Ciò richiede il filewp-blog-header.php
.Praticamente la prima cosa che fa
wp-blog-header.php
è caricarewp-load.php
.Quindi,
wp-load.php
imposta la costante ABSPATH (la directory principale di WordPress) e inizializzaerror_reporting()
prima di caricarewp-config.php
.
Questo processo di caricamento, e in particolare il codice in wp-load.php
, possono insegnarci alcune cose interessanti. Ecco quel codice:
/* * 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] }
Cosa vediamo qui?
wp-config.php può essere spostato in alto
Innanzitutto, il commento ci dice che possiamo inserire wp-config.php
nella "root di WordPress". Ciò che non viene menzionato è che la "root" può effettivamente essere una directory sopra l' ABSPATH
dove risiede wp-load.php
.
Possiamo vedere questo controllo aggiuntivo in elseif
dove cerca dirname( ABSPATH ) . '/wp-config.php'
dirname( ABSPATH ) . '/wp-config.php'
. La condizione aggiuntiva in elseif
è spiegata nel commento.
La schermata di configurazione viene caricata se non è presente un file wp-config.php
In secondo luogo, possiamo vedere che se un file di configurazione non esiste, caricherà la schermata di configurazione.
È del tutto possibile che tu non abbia mai visto questa schermata prima. Consente di inserire le informazioni di configurazione iniziale, come le credenziali del database, in un'interfaccia utente basata sul Web:
Questa è una caratteristica di WordPress che vale la pena conoscere. Se hai mai messo i file core di WordPress su un server web pubblicamente disponibile, ma non crei un file wp-config.php
, allora qualcun altro (o, più probabilmente, un bot) può venire e configurare WordPress a modo suo e possibilmente compromettere il tuo hosting.
wp-config.php si carica molto presto
La terza cosa da notare è che wp-config.php
viene caricato molto presto nella sequenza di avvio di WordPress. Ciò significa che:
C'è molto che non possiamo fare in
wp-config.php
. Ad esempio, non possiamo aggiungere hook (azioni o filtri) qui perché le funzioni e le strutture dati per farlo non sono ancora state caricate. E non abbiamo accesso a nessuna delle funzioni, oggetti e API interni di WordPress.Abbiamo molto controllo su ciò che accadrà dopo. Poiché il file viene caricato così presto, ha molta influenza su WordPress. Questo è sia bene che male. Possiamo facilmente far morire completamente WordPress. Ma possiamo anche accedere a tutto ciò che è definito in
wp-config.php
praticamente da qualsiasi altra parte in WordPress.
Non scherzare con wp-config.php!
L'ultima cosa che impariamo da questo processo è che da questo grande potere derivano grandi responsabilità.
Nella parte inferiore del file wp-config.php
ci sono queste righe:
/* 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';
Ci sono alcune istruzioni qui, ma la riga "stop editing" è importante. Dopo questa riga c'è la continuazione della sequenza di inizializzazione di WordPress. L'aggiunta di nuovo codice nel posto sbagliato probabilmente comporterà solo che il nuovo codice non avrà alcun effetto. Ma per sicurezza, ti consiglio di seguire queste istruzioni. Sono lì per una buona ragione.
Controllo/Linting del file wp-config.php
Se stai lavorando in produzione, non vuoi davvero inserire alcun errore nel file wp-config.php
. Gli errori qui possono danneggiare il tuo sito Web e potresti non visualizzare un messaggio di errore utile quando lo fa.
Puoi eseguire php
sulla riga di comando con l'opzione -l
("lint") per controllare il tuo file wp-config.php
per errori irreversibili di sintassi PHP.
$ php -l wp-config.php Errore di analisi: errore di sintassi, token imprevisto "require_once" in wp-config.php alla riga 9 Errori durante l'analisi di wp-config.php
Potresti anche scrivere uno script di shell per...
- Copia
wp-config.php
in un file temporaneo, - Modifica il file temporaneo,
- Lint il file temporaneo e
- Copialo di nuovo solo se non ha errori di sintassi.
Se sei soddisfatto della riga di comando, è più sicuro utilizzare i comandi WP-CLI come wp config set <name> <value>
per impostare i valori in modo sicuro piuttosto che farlo manualmente.
Puoi anche elencare i tuoi valori di configurazione con WP-CLI (questo è un esempio con alcune voci rimosse: hai un'idea!):
$ lista di configurazione wp +----------------------+--------------------------- --------------------+----------+ | nome | valore | tipo | +----------------------+--------------------------- --------------------+----------+ | directory_root | /Utenti/smithers/sites/snpp | variabile | | webroot_dir | /Utenti/smithers/sites/snpp/pubblico | variabile | | prefisso_tabella | wp_ | variabile | | WP_HOME | https://snpp.test | costante | | WP_SITEURL | https://snpp.test/ | costante | | DB_NAME | snpp | costante | | UTENTE_DB | radice | costante | | PASSWORD_DB | Montgomery | costante | | DB_HOST | 127.0.0.1 | costante | | DB_CHARSET | utf8mb4 | costante | | DB_COLLATE | | costante | | PREFISSO_DB | wp_ | costante | | WP_DEBUG | 1 | costante | | WP_DEBUG_LOG | 1 | costante | | WP_DEBUG_DISPLAY | | costante | | WP_AMBIENTE_TIPO | sviluppo | costante | | DISABLE_WP_CRON | | costante | | DISALLOW_FILE_EDIT | 1 | costante | +----------------------+--------------------------- --------------------+----------+
Queste due tecniche potrebbero davvero farti risparmiare qualche seccatura e impedirti di impazzire per aver accidentalmente messo un punto e virgola nel posto sbagliato in un file così critico.
Protezione di WordPress con wp-config.php
La sicurezza è un argomento perennemente caldo in WordPress. Alcune impostazioni che possiamo modificare nel file wp-config
mettono più strumenti nella nostra cassetta degli attrezzi di sicurezza.
Queste parti del file wp-config
non sono sicuramente le uniche cose che dovresti usare per ottenere una buona sicurezza di WordPress. Assicurati di comprendere a fondo la sicurezza del sito Web oltre alle informazioni nella sezione seguente.
Protezione di wp-config.php dai visitatori del sito web
Il tuo file wp-config
risiede nella directory principale del tuo sito Web per impostazione predefinita e contiene informazioni critiche come i dettagli di accesso del database e le password salt. Non vuoi che queste informazioni siano pubblicamente disponibili, quindi dovresti assicurarti che il tuo file wp-config
sia protetto dai visitatori del sito web.
La tua società di hosting lo farà spesso per te. Puoi verificare provando ad accedere al file dal tuo browser aggiungendo /wp-config.php
subito dopo il tuo dominio. Questo URL potrebbe essere diverso se hai spostato il file.
Se hai inserito il file wp-config
nella directory sopra la directory principale del tuo sito web, non dovresti essere in grado di vederlo. Nella maggior parte degli altri casi riceverai un messaggio di errore PHP quando provi comunque a visitare il file, quindi di solito non c'è niente da fare qui. Ma se vuoi proteggerlo correttamente, puoi farlo modificando la configurazione del tuo server web (Apache o nginx) per bloccarne l'accesso.
Infine, se stai archiviando il file del tuo sito Web in Git, è importante non archiviare il file wp-config
nel tuo repository Git. Ciò potrebbe far trapelare informazioni critiche sul tuo sito, ma in aggiunta probabilmente vorrai comunque una versione diversa di questo file in ogni ambiente. Quindi è meglio aggiungerlo al tuo .gitignore
e gestire manualmente i file in ogni ambiente.
Chiavi/Sali rotanti
Cosa sono le chiavi/sali?
La sezione chiavi e sali è una delle parti più misteriose di wp-config
. Questo insieme di costanti dall'aspetto strano aiuta con la crittografia di cose come cookie e nonce. Senza entrare nei dettagli, come ha fatto WP Engine, aggiungono un ulteriore livello di casualità che rende le cose più difficili da decifrare se non conosci i sali e le chiavi.
Perché "ruotare" chiavi/sale?
Prima di tutto, "ruotare" è solo una parola di fantasia per "cambiare". Non so perché usiamo "ruota". Non è che torniamo mai allo stesso mazzo di chiavi!
Probabilmente dovresti cambiare chiavi e sali se il sito è stato violato, poiché non puoi garantire che le chiavi e i sali siano ancora segreti. Ma potresti comunque volerli ruotare regolarmente, come con le password, solo per essere sicuro che nessuno sappia cosa sono.
Il problema con chiavi/sali rotanti
Cambiare chiavi e sali non è senza dolore. Chiunque abbia un set di cookie lo perderà. Quindi chiunque abbia effettuato l'accesso verrà disconnesso e chiunque abbia un carrello WooCommerce lo svuota.
Come ruotare chiavi/sali
Voglio dire, potresti modificare il file wp-config
e semplicemente digitare alcuni nuovi caratteri casuali su quelli vecchi. Ma questo sarebbe noioso e gli umani non sono molto bravi con la casualità.
Quindi lascia che ti parli di alcuni modi per impostare nuove chiavi/sale nel tuo wp-config
.
- Aggiungi manualmente le chiavi da un generatore: puoi utilizzare il generatore di wordpress.org per ottenere il codice di cui hai bisogno. Basta copiarlo e incollarlo nel file
wp-config
al posto dei vecchi valori. - Usa un plug-in: molti plug-in di sicurezza come Sucuri Security, iThemes Security e Malcare hanno tutti questa funzione. E Salt Shaker è un plug-in dedicato che automatizza questo processo in base a un programma per te.
- Usa WP-CLI. Abbiamo già detto quanto sia fantastico WP-CLI? Noi facemmo? OK. Bene, lo stiamo dicendo di nuovo! E puoi usare il comando
wp config shuffle-salts
per fare questo lavoro in pochi secondi.
Spostare e nascondere le cose
Gli addetti alla sicurezza ti diranno che "sicurezza per oscurità" non è affatto sicurezza, ma ad alcune persone piace ancora nascondere le proprie cose su WordPress per erigere ulteriori barriere agli hacker.
Il file wp-config
ti offre una serie di opzioni per farlo, e le tratteremo nelle sezioni successive sullo spostamento delle cose e sulla disattivazione della modifica dei file.
Disabilitazione degli editor di file
WordPress ha una pratica funzionalità che ti consente di modificare file in temi e plugin dall'interno della dashboard di amministrazione. La modifica wp-config.php
ti consente di disattivare questi editor di file! Ad alcune persone piace disabilitarli per la massima tranquillità.
Ora so che c'è un argomento di sicurezza per cui se qualcuno ha l'accesso come amministratore al tuo sito, che è necessario per utilizzare questi editor, può caricare un plug-in e fare comunque quello che vuole. Avere questi editor abilitati non fornisce agli hacker più potere di quello che già hanno.
Tuttavia, anche se la sicurezza potrebbe non essere effettivamente migliorata disattivandoli, il vero motivo per farlo è impedire alle persone che sono effettivamente autorizzate come amministratori di usarli. Se sei un'agenzia, probabilmente non vuoi che i tuoi clienti scoprano che possono modificare tutti i file dei loro temi, giusto?
Molti host disabiliteranno questa funzione per impostazione predefinita. Ma se vuoi farli sparire è semplice come aggiungere:
define( 'DISALLOW_FILE_EDIT', true );
O se vuoi davvero bloccare il tuo filesystem, c'è DISALLOW_FILE_MODS
, che tratteremo nella prossima sezione.
Disabilitazione degli aggiornamenti automatici
Che tu li ami o li odi, gli aggiornamenti automatici di WordPress hanno avuto un impatto netto positivo sull'ecosistema di WordPress e sono difficili da ignorare. Ma non tutti vogliono che il proprio software si prenda cura di se stesso!
Quindi wp-config
ti dà il controllo sul processo di aggiornamento automatico con un semplice insieme di costanti autoesplicative che puoi impostare:
# 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' );
Se vuoi qualcosa di più estremo, puoi DISALLOW_FILE_MODS
:
define( 'DISALLOW_FILE_MODS', true );
Ma questo impedisce a WordPress di scrivere qualsiasi cosa sul disco in relazione a core, temi, plug-in o traduzioni e disabilita le notifiche e-mail su aggiornamenti minori. È stato descritto da un collaboratore principale come "pazzo stupido da usare a meno che tu non sappia esattamente cosa stai facendo".
Leggermente meno estremo è AUTOMATIC_UPDATER_DISABLED
. Ciò ti consente di installare plugin e temi, ma non li aggiornerà né il software principale. Disabilita anche gli aggiornamenti di traduzione però.
define( 'AUTOMATIC_UPDATER_DISABLED', true );
C'è una guida dettagliata su tutto questo su wordpress.org, comprese alcune altre opzioni come l'utilizzo di filtri per un controllo più dettagliato.
Infine, noto che se il tuo sito è controllato dalla versione, è probabile che WordPress abbia comunque disabilitato gli aggiornamenti per te. Ad esempio, la presenza di una directory .git
nella root del sito (o di vari altri file in varie posizioni) disabiliterà gli aggiornamenti automatici senza che sia necessario aggiungere nulla a wp-config
.
Configurazione HTTPS
La configurazione di HTTPS spesso era impegnativa. Con l'avvento di certificati di sicurezza gratuiti e affidabili da luoghi come LetsEncrypt e Cloudflare, molti host lo configureranno per te con un paio di clic. Questa impostazione dovrebbe probabilmente essere considerata legacy, ma forse ne hai ancora bisogno per qualcosa.
La costante FORCE_SSL_ADMIN
dice a WordPress di utilizzare sempre SSL per le pagine di accesso e il dashboard di WordPress. Ciò garantisce che credenziali e cookie sicuri non possano essere inviati non crittografati.
Ma, come ho detto, una buona società di hosting renderà comunque semplice la configurazione di HTTPS sul tuo sito, quindi fallo e basta.
Prevenire le richieste HTTP esterne
Infine, in sicurezza, puoi bloccare le richieste HTTP esterne. Ciò significa che WordPress non può contattare altri luoghi su Internet per fare cose come effettuare chiamate API o scaricare aggiornamenti.
Consentire a WordPress di contattare servizi esterni tramite HTTP è generalmente una buona idea perché ti consente di ottenere aggiornamenti, installare plug-in e temi e molti plug-in si interrompono se disattivi le richieste HTTP.
Ma il core di WordPress e molti plugin e temi inviano "telemetria" o "dati di utilizzo" ai server centrali. Questo può essere positivo: aiuta gli sviluppatori di plugin e temi a sapere chi sta usando il loro software e come. Ma se hai un sito che contiene dati particolarmente sensibili, potresti voler disabilitarlo. E puoi farlo con:
define( 'WP_HTTP_BLOCK_EXTERNAL', true );
Se vuoi avere un elenco consentito di host che possono essere contattati, puoi farlo anche tu:
define( 'WP_ACCESSIBLE_HOSTS', 'api.wordpress.org,*.github.com' );
Tieni presente che l'elenco degli host accessibili è un elenco separato da virgole e sono consentiti sottodomini con caratteri jolly. E puoi monitorare quali host vengono contattati utilizzando il plug-in Log Richieste HTTP.
Spostare cose in giro
Non tutte le installazioni di WordPress sono uguali. Ad alcuni host o framework piace spostare le directory per motivi di sicurezza o per mantenere il codice e le risorse specifici del sito separati dal core di WordPress. Il mio articolo sull'utilizzo di Git e Composer per gestire WordPress copre alcuni vantaggi di questo approccio.
Quindi quali opzioni ti offre WordPress, in mancanza di un termine migliore, "materiale in movimento"?
Modifica del prefisso del database
WordPress utilizza il prefisso del nome della tabella del database wp_
per impostazione predefinita. Questo prefisso viene aggiunto a tutti i nomi delle tabelle del database e viene utilizzato anche in altri luoghi, ad esempio l'opzione <prefix>user_roles
nella tabella delle opzioni e le voci meta utente <prefix>capabilities
.
Gli hacker o gli aggressori possono utilizzare il prefisso predefinito in un attacco, cercando di scoprire o modificare le tabelle del database. Quindi alcune persone consigliano di cambiarlo dall'impostazione predefinita.
L'opzione wp_config
$table_prefix
ti consente di farlo e dovresti probabilmente impostarlo su una stringa breve ma casuale, con suffisso un trattino basso:
$table_prefix = 'b4F8az_';
Questo dirà a WordPress di usare nomi di tabelle come b4F8az_posts
invece di wp_posts
.
Non dovresti aggiornare alcun codice per soddisfare questa modifica (a meno che quel codice non sia scritto molto male), ma se lo stai modificando su un sito esistente, dovrai apportare alcuni aggiornamenti al tuo database e non solo rinominare le tavole!
Alcuni plugin di sicurezza lo faranno per te e c'è un plugin che può farlo anche tu. Consigliamo vivamente di eseguire un backup del database prima di eseguire questa operazione e si noti che è meglio selezionare un prefisso di tabella non predefinito durante l'installazione di WordPress, non quando lo si modifica mentre il sito è in corso.
Una nota curiosa su questo è che $table_prefix
è una variabile, non una costante. È l'unica variabile definita nel file di configurazione di esempio che WordPress ti offre! E se sei ancora curioso: sì, i comandi wp config
di WP-CLI si occupano di questo per te senza che tu debba nemmeno saperlo!
Spostamento delle tabelle User e Usermeta
Non l'ho mai visto fare, e ho solo imparato che potrebbe essere fatto durante la scrittura di questo articolo, ma puoi anche cambiare completamente i nomi delle tabelle user e usermeta.
Immagino che questo aiuti a prevenire un attacco SQL-injection che tenta di "SELECT * FROM wp_usermeta;", ma sono felice di sentire altri motivi per farlo.
In ogni caso, le CUSTOM_USER_TABLE
e CUSTOM_USER_META_TABLE
sono ciò di cui hai bisogno:
define( 'CUSTOM_USER_TABLE', $table_prefix.'my_users' ); define( 'CUSTOM_USER_META_TABLE', $table_prefix.'my_usermeta' );
Ci sono alcuni avvertimenti che vale la pena conoscere prima di utilizzare queste costanti. Controlla i documenti ufficiali prima di utilizzare questa funzione. E come usare un prefisso di tabella personalizzato, è sicuramente meglio farlo quando si installa un nuovo sito, piuttosto che modificarlo in seguito.
Sposta le directory di contenuti, caricamenti e plugin
È anche possibile spostare l'intera directory wp-content
, la directory dei uploads
e le directory dei themes
e dei plugins
. Cose da notare:
- In alcuni di questi casi è necessario impostare l'URL e la directory.
- È necessario fare attenzione a utilizzare percorsi completi o percorsi relativi a seconda dei casi.
- Nessuna di queste impostazioni dovrebbe avere una barra finale.
Consulta la documentazione ufficiale per i dettagli: non lo ripeterò qui.
Infine, tieni presente che un plug-in o un tema mal codificato può rovinare se li modifichi. Questo non dovrebbe mai accadere, ma vale la pena conoscerlo.
Se sei uno sviluppatore di plugin o temi, è importante ricordare che questi percorsi possono cambiare. Quindi assicurati di non codificare in modo rigido i percorsi di directory o URL. Le funzioni utili per te qui sono:
wp_upload_dir
plugins_url
plugin_dir_url
plugin_dir_path
get_stylesheet_directory
get_stylesheet_directory_uri
get_template_directory
: nota che per un tema figlio restituisce la posizione del tema principale
get_template_directory_uri
C'è un elenco più completo di funzioni come queste nel manuale per sviluppatori di WordPress.
Infine, oltre a spostare i file all'interno dell'installazione di WordPress, potresti anche voler spostare la posizione di wp-admin o cambiare la posizione del tuo sito. E anche wp-config.php
può aiutare in questo.
Impostazioni relative ai contenuti
Dopotutto, WordPress è un sistema di gestione dei contenuti. Quindi ti aspetteresti alcune delle costanti che puoi usare in wp-config.php
per controllare le opzioni del contenuto. Diamo un'occhiata e vediamo cosa possiamo fare.
Modifica gli URL del sito e del dashboard
Questi mi hanno sempre confuso.
Per impostare l'URL del tuo sito devi utilizzare la costante WP_HOME
, non la costante WP_SITEURL
.
La costante WP_SITEURL
non cambia l'URL del tuo sito.
Confuso?
La descrizione ufficiale di ciò che fa WP_SITEURL
è "l'indirizzo in cui risiedono i file core di WordPress". Anche questo è fonte di confusione perché è un URL, non una directory.
Non incolpare me per questo, sono solo la tua guida turistica per la giornata!
L'impostazione WP_HOME
e WP_SITEURL
sovrascrive le voci home
e siteurl
nella tabella del database wp_options
. In modo che, almeno, abbia senso.
// NOTE: These must not have trailing slashes define( 'WP_HOME', 'https://helfish.media' ); define( 'WP_SITEURL', 'https://hellfish.media/wordpress` );
È possibile utilizzare queste costanti dopo aver spostato un sito in un nuovo URL, per rendere operativo il sito mentre si corregge correttamente il database. Puoi anche scegliere di lasciarli al loro posto in seguito.
L'impostazione WP_SITEURL
può essere utilizzata anche quando hai spostato i file principali di WordPress in una directory diversa.
L'uso di questi impedisce anche l'esecuzione di una o due query del database per ottenere i valori dalla tabella delle opzioni, quindi potrebbe avere un aumento marginale delle prestazioni. Tuttavia, se stai eseguendo la memorizzazione nella cache degli oggetti, il guadagno è probabilmente trascurabile.
Ci sono ulteriori dettagli nei documenti ufficiali e persino un articolo di supporto completo sulla modifica dell'URL del sito. Inoltre, quell'articolo include l'oscura costante RELOCATE
per wp-config.php
di cui non avevo mai sentito parlare prima di cercare questo articolo.
Infine, quando sposti i siti, tieni presente che questa non è l'unica cosa che devi cambiare. Si consiglia una ricerca e sostituzione completa nel database per le stringhe URL.
Impostazioni post
Ci sono alcune impostazioni diverse che puoi modificare quando si tratta di post. La maggior parte di questi riguarda le revisioni dei post o la funzione di salvataggio automatico.
Post Revisioni
Il comportamento predefinito di WordPress è di salvare tutte le revisioni apportate ai post e alle pagine. Il vantaggio di questo è che è facile ripristinare le versioni precedenti. Gli svantaggi sono che tutte queste revisioni occupano spazio nel database e possono influire sulle prestazioni del sito rallentando le query del database.
È possibile disabilitare completamente le revisioni dei post modificando il valore WP_POST_REVISIONS
nel file wp-config.php
. Il valore predefinito è true. Per disattivare le revisioni puoi invece impostarlo su false:
define( 'WP_POST_REVISIONS', false );:
Alcuni host, incluso WP Engine, disabilitano le revisioni dei post per impostazione predefinita. Ti consiglio di verificare con il tuo provider di hosting prima di apportare modifiche. Questo varia da host a host, ma se utilizzi WP Engine, non puoi abilitare le revisioni tramite wp-config
, poiché verrà sovrascritto a livello di server.
Se il tuo host lo controlla e provi a cambiarlo, non romperai necessariamente qualcosa, ma potresti perdere tempo.
Se sei preoccupato per le revisioni dei post che rallentano le query del database, un'opzione migliore potrebbe essere quella di limitare il numero di revisioni memorizzate da WordPress. Questo è controllato dalla costante WP_POST_REVISIONS
, che puoi impostare sul numero massimo di revisioni che vuoi mantenere:
define( 'WP_POST_REVISIONS', 5 );
Modifica dell'intervallo di salvataggio automatico
Puoi anche ridurre la frequenza di attivazione del salvataggio automatico. L'impostazione predefinita è ogni 60 secondi, ma puoi cambiarlo come preferisci. Se sei paranoico, potresti invece voler impostarlo su 20 o 30 secondi.
È importante tenere a mente quanto tempo impiega un salvataggio automatico. Non vuoi che si sovrappongano facendoli accadere troppo frequentemente, quindi non impostare questo valore, ad esempio, su un secondo. Non è molto probabile che i salvataggi automatici richiedano più del valore predefinito di 60 secondi, ma puoi aumentare l'intervallo se desideri salvare le richieste:
define( 'AUTOSAVE_INTERVAL', 120 ); // Seconds
Avvolgendo
C'è molto potenziale in wp-config
che aspetta solo di essere sbloccato. Spero che questo tour abbia contribuito a mettere in evidenza solo alcune delle cose possibili. In un articolo futuro, esaminerò altre funzionalità avanzate inerenti a wp-config
, comprese le installazioni multisito e il debug. Esaminerò anche le prestazioni, incluso come regolare i limiti di memoria, i problemi CRON e i tipi di ambiente.
Ci sono senza dubbio altri tesori in agguato nella documentazione ufficiale, in attesa di essere scoperti. Quali suggerimenti hai trovato per l'utilizzo di wp-config
? Fatemi sapere nei commenti.