Articles

Trucchi di configurazione di WordPress

Molti utenti di WordPress conoscono il file wp-config.php come la chiave del database di WordPress. È dove si imposta il nome del database, il nome utente, la password e la posizione (tra le altre cose come le chiavi di sicurezza, il prefisso del database e la lingua localizzata).

Ecco uno screenshot di wp-config.php (alias il file di configurazione di WordPress) per coloro che potrebbero non avere ancora familiarità:

The WordPress Configuration File, wp-config.phpIl file wp-config.php contiene le informazioni necessarie a WordPress per connettersi al database

Ma quello che molti utenti non sanno è che il file wp-config.php può essere utilizzato per specificare una vasta gamma di impostazioni di configurazione, consentendovi di migliorare la funzionalità, le prestazioni e la sicurezza del vostro sito WordPress-powered. In questo articolo, condivido il maggior numero di questi trucchi di configurazione che sono stato in grado di raccogliere nel corso degli anni. Questa guida copre tutto ciò che si trova nel Codex di WordPress, così come alcuni trucchi aggiuntivi che probabilmente non avete visto prima. Se conosci altri trucchi di configurazione di WordPress, condividili nei commenti e li aggiungerò al post.

Aggiornamento! Date un’occhiata all’articolo successivo per altri trucchi di configurazione di WordPress “

Credenziali del database *

Questa serie di quattro definizioni di configurazione sono necessarie affinché WordPress si connetta al database:

define('DB_NAME', 'database-name');define('DB_USER', 'database-username');define('DB_PASSWORD', 'database-password');define('DB_HOST', 'localhost');

Nome del database, nome utente e password dovrebbero essere facilmente disponibili durante la creazione del database, ma il valore DB_HOST potrebbe essere più difficile da acquisire. Più comunemente, questo valore è semplicemente “localhost“, ma se questo non funziona, ecco alcuni altri valori da provare:

  • 1and1 Hosting – db12345678
  • DreamHost – mysql.example.com
  • GoDaddy – h41mysql52.secureserver.net
  • ICDSoft – localhost:/tmp/mysql5.sock
  • MediaTemple (GS) – internal-db.s44441.gridserver.com
  • Pair Networks – dbnnnx.pair.com
  • Yahoo – mysql

Puoi anche specificare una porta alternativa per il tuo server di database. Ecco due esempi:

define('DB_HOST', 'localhost:1234');
define('DB_HOST', 'mysql.domain.tld:1234');

Un altro bel trucco è quello di rilevare automaticamente il valore del server di database:

define('DB_HOST', $_ENV{DATABASE_SERVER});

Se tutte queste cose non riescono, o se hai ancora problemi, consulta il tuo fornitore di hosting per assistenza.

Set di caratteri del database e ordinamento *

A partire dalla versione 2.2 di WordPress, potete specificare un set di caratteri per le vostre tabelle del database MySQL. In generale, non c’è motivo di cambiare il valore predefinito del set di caratteri UTF-8, che di solito è perfetto perché supporta tutte le lingue. Ecco l’impostazione predefinita (e raccomandata):

define('DB_CHARSET', 'utf8');

WordPress versione 2.2 permette anche di specificare il collation, che è l’ordine di ordinamento del set di caratteri del vostro database. L’impostazione del collation è generalmente gestita automaticamente da MySQL in base al set di caratteri, che è abilitato lasciando il valore di collation vuoto come fatto nell’impostazione predefinita per questa definizione. Ecco l’impostazione predefinita (e raccomandata):

define('DB_COLLATE', '');
Nota: usa queste due definizioni solo se esistono già nel tuo file wp-config.php.

Security Keys *

A partire da WordPress 2.7, ci sono quattro chiavi di sicurezza disponibili che sono progettate per assicurare una migliore crittografia dei cookie. Queste chiavi lavorano silenziosamente in background e dovrebbero essere il più possibile casuali e complicate (no, non avrete mai bisogno di ricordarle). Il modo più semplice per generare queste chiavi è quello di farlo automaticamente al servizio secret-key di WordPress.org. Visita semplicemente quel link e copia/incolla i risultati nel tuo file wp-config.php. Si noti che queste chiavi possono essere cambiate in qualsiasi momento, e così facendo si invalidano tutti i cookie esistenti dei vostri utenti in modo che debbano rifare il login al vostro sito.

define('AUTH_KEY', ':dr+%/5V4sAUG-gg%aS*v;&xGhd%{YV)p:Qi?jXLq,<h\`39');define('SECURE_AUTH_KEY', '@*+S=8\"\'+\"}]<m#+}V)p:Qi?jXLq,<h\`39m_(');define('LOGGED_IN_KEY', 'S~AACm4h1;T^\"qW3_8Zv!Ji=y|)~5i63JI |Al.'/path/to/wordpress');define('WP_SITEURL', 'http://'.$_SERVER.'/path/to/wordpress');

Probabilmente è meglio evitare questi valori se si usa su un sito pubblico.

Percorso del modello e percorso del foglio di stile

Come per le costanti predefinite per l’indirizzo del blog e l’indirizzo del sito (vedi sezione precedente), puoi anche aumentare le prestazioni eliminando le query al database per il percorso del modello e il percorso del foglio di stile del tuo sito. Ecco i valori predefiniti per queste due definizioni:

define('TEMPLATEPATH', get_template_directory());define('STYLESHEETPATH', get_stylesheet_directory());

Così com’è, queste due definizioni stanno ancora interrogando il database, ma possiamo eliminare queste query estranee codificando i valori al loro posto:

define('TEMPLATEPATH', '/absolute/path/to/wp-content/themes/active-theme');define('STYLESHEETPATH', '/absolute/path/to/wp-content/themes/active-theme');

Disable Cache and Cache Expiration

Queste due opzioni si applicano alle vecchie versioni di WordPress che utilizzano ancora il meccanismo predefinito di caching basato sugli oggetti. La prima definizione ti permette di abilitare o disabilitare la cache, mentre la seconda ti permette di specificare il tempo di scadenza della cache.

Enable the cache

define('WP_CACHE', true); // enable the cachedefine('ENABLE_CACHE', true); // enable the cachedefine('CACHE_EXPIRATION_TIME', 3600); // in seconds

Disable the cache

define('WP_CACHE', false); // disable the cachedefine('DISABLE_CACHE', true); // disable the cache

Specify Cookie Domain

Ci sono diverse ragioni per cui vuoi specificare un dominio dei cookie per il tuo sito. Un esempio comune è quello di evitare che i cookie vengano inviati con le richieste di contenuti statici sui sottodomini. In questo caso, usereste questa definizione per dire a WordPress di inviare i cookie solo al vostro dominio non statico. Questo potrebbe essere un significativo aumento delle prestazioni. Ecco alcuni esempi di impostazione di varie informazioni sul percorso dei cookie e sul dominio dei cookie:

define('COOKIE_DOMAIN', '.digwp.com'); // don't omit the leading '.'define('COOKIEPATH', preg_replace('|https?://+|i', '', get_option('home').'/'));define('SITECOOKIEPATH', preg_replace('|https?://+|i', '', get_option('siteurl').'/'));define('PLUGINS_COOKIE_PATH', preg_replace('|https?://+|i', '', WP_PLUGIN_URL));define('ADMIN_COOKIE_PATH', SITECOOKIEPATH.'wp-admin');

Sovrapporre i permessi dei file

Se i permessi predefiniti del vostro host web sono troppo restrittivi, l’aggiunta di queste definizioni al vostro file di configurazione di WordPress può aiutare a risolvere il problema. Notate che non avete bisogno delle virgolette intorno ai valori dei permessi. Per esempio:

define('FS_CHMOD_FILE', 0755);define('FS_CHMOD_DIR', 0755);

Visualizza tutte le costanti definite

Vuoi visualizzare tutte le costanti predefinite? Buone notizie, questa funzione PHP restituirà un array di tutte le costanti attualmente definite:

print_r(@get_defined_constants());

Tabelle utente e usermeta personalizzate

E le tabelle utente e usermeta personalizzate? Sì, puoi fare anche quello, con le seguenti definizioni:

define('CUSTOM_USER_TABLE', $table_prefix.'my_users');define('CUSTOM_USER_META_TABLE', $table_prefix.'my_usermeta');

CostantiFTP/SSH

Questo insieme di definizioni di configurazione è progettato per aiutare gli utenti a individuare e utilizzare le connessioni FTP/SSH. Ecco un esempio di set di costanti predefinite per gli aggiornamenti FTP/SSH:

define('FS_METHOD', 'ftpext'); // forces the filesystem method: "direct", "ssh", "ftpext", or "ftpsockets"define('FTP_BASE', '/path/to/wordpress/'); // absolute path to root installation directorydefine('FTP_CONTENT_DIR', '/path/to/wordpress/wp-content/'); // absolute path to "wp-content" directorydefine('FTP_PLUGIN_DIR ', '/path/to/wordpress/wp-content/plugins/'); // absolute path to "wp-plugins" directorydefine('FTP_PUBKEY', '/home/username/.ssh/id_rsa.pub'); // absolute path to your SSH public keydefine('FTP_PRIVKEY', '/home/username/.ssh/id_rsa'); // absolute path to your SSH private keydefine('FTP_USER', 'username'); // either your FTP or SSH usernamedefine('FTP_PASS', 'password'); // password for FTP_USER usernamedefine('FTP_HOST', 'ftp.domain.tld:21'); // hostname:port combo for your SSH/FTP server

Muovi la tua directory wp-content

A partire dalla versione 2.6 di WordPress, puoi cambiare la posizione predefinita della directory wp-content. Ci sono diverse buone ragioni per farlo, incluso il miglioramento della sicurezza del sito e la facilitazione degli aggiornamenti FTP. Alcuni esempi:

// full local path of current directory (no trailing slash)define('WP_CONTENT_DIR', $_SERVER.'/path/wp-content'); // full URI of current directory (no trailing slash)define('WP_CONTENT_URL', 'http://domain.tld/path/wp-content');

Puoi anche specificare un percorso personalizzato per la tua directory plugins. Questo può aiutare con i problemi di compatibilità con alcuni plugin:

// full local path of current directory (no trailing slash)define('WP_PLUGIN_DIR', $_SERVER.'/path/wp-content/plugins'); // full URI of current directory (no trailing slash)define('WP_PLUGIN_URL', 'http://domain.tld/path/wp-content/plugins');

Gestione delle revisioni dei post

Le versioni recenti di WordPress forniscono un sistema di revisione dei post che consente agli utenti di salvare diverse versioni dei loro post sul blog e anche tornare alle versioni precedentemente salvate, se necessario. Indipendentemente da quanto tu disprezzi o meno questa sorprendente caratteristica, qui ci sono un paio di definizioni di configurazione che potrebbero rivelarsi utili per te 😉

Limitare il numero di revisioni salvate

define('WP_POST_REVISIONS', 3); // any integer, but don't get too crazy

Disabilitare la funzione di post-revisione

define('WP_POST_REVISIONS', false);

Specificare l’intervallo di salvataggio automatico

In modo simile alla funzione di post-revisione è la funzionalità di salvataggio automatico effettivamente utile di WordPress. Per impostazione predefinita, WordPress salva il tuo lavoro ogni 60 secondi, ma è possibile modificare totalmente questa impostazione a qualsiasi cosa tu voglia. Non impazzire troppo però, a meno che tu non voglia stressare il tuo server 😉

define('AUTOSAVE_INTERVAL', 160); // in seconds

Debugare WordPress

Dalla versione 2.3.1 di WordPress, gli utenti sono stati in grado di visualizzare alcuni errori e avvertimenti per aiutare il debugging del loro sito. A partire dalla versione 2.5 di WordPress, l’abilitazione della segnalazione degli errori aumenta il livello di segnalazione a E_ALL e attiva gli avvertimenti per le funzioni deprecate. Per impostazione predefinita (cioè, se nessuna definizione è specificata nel file wp-config.php), la segnalazione degli errori è disabilitata.

define('WP_DEBUG', true); // enable debugging modedefine('WP_DEBUG', false); // disable debugging mode (default)

Configurazione del log degli errori

Ecco un modo semplice per abilitare la registrazione degli errori di base per il vostro sito WordPress-powered. Create un file chiamato “php_error.log“, rendetelo scrivibile dal server e mettetelo in una directory di vostra scelta. Poi modificate il percorso nella terza linea del seguente codice e mettetelo nel vostro file wp-config.php:

@ini_set('log_errors','On');@ini_set('display_errors','Off');@ini_set('error_log','/home/path/domain/logs/php_error.log');

Aumentare la memoria di PHP

Se state ricevendo messaggi di errore che vi dicono che la vostra “Dimensione di memoria consentita di xxx byte è esaurita”, questa impostazione può aiutare a risolvere il problema. A partire dalla versione 2.5 di WordPress, la definizione WP_MEMORY_LIMIT consente di specificare la quantità massima di memoria che può essere utilizzata da PHP. Per impostazione predefinita, WordPress tenterà automaticamente di aumentare la memoria di PHP fino a 32MB, quindi questa impostazione è necessaria solo per valori superiori a 32MB. Nota che alcuni web host disabilitano la tua capacità di aumentare la memoria PHP, quindi potresti aver bisogno di supplicarli di farlo. Ecco alcuni esempi:

define('WP_MEMORY_LIMIT', '64M');define('WP_MEMORY_LIMIT', '96M');define('WP_MEMORY_LIMIT', '128M');

Salva e visualizza le query del database per l’analisi

Questa tecnica è perfetta per salvare le query del database e visualizzare le informazioni per una successiva analisi. Il processo salva ogni query, la sua funzione associata e il suo tempo di esecuzione totale. Queste informazioni vengono salvate come un array e possono essere visualizzate in qualsiasi pagina del template del tema. Per fare questo, aggiungete prima la seguente direttiva al vostro file wp-config.php:

define('SAVEQUERIES', true);

Poi, nel footer del vostro tema attivo, inserite il seguente codice:

// display the query array for admin onlyif (current_user_can('level_10')) {global $wpdb;echo "<pre>";print_r($wpdb->queries);echo "</pre>";}

Ecco una versione a linea singola di questa funzione:

<?php if (current_user_can('level_10')) { global $wpdb; echo "<pre>"; print_r($wpdb->queries); echo "</pre>"; } ?>

Control Proxy Access

Da WordPress 2.8, il file di configurazione può essere utilizzato per definire le costanti coinvolte nel bloccare, consentire e filtrare l’accesso a specifici host da dietro un server proxy. Per esempio, se ospiti il tuo sito WordPress su una rete intranet, puoi impedire l’accesso a tutti gli host esterni e consentire solo le richieste da localhost e dal tuo blog utilizzando la prima definizione qui sotto. Puoi anche consentire l’accesso a host specifici con un elenco separato da virgole di nomi di host consentiti, come dimostrato nella terza definizione qui sotto.

define('WP_HTTP_BLOCK_EXTERNAL', true); // block external requestsdefine('WP_HTTP_BLOCK_EXTERNAL', false); // allow external requestsdefine('WP_ACCESSIBLE_HOSTS', 'api.wordpress.org'); // whitelist hosts
Nota che dovresti consentire l’accesso api.wordpress.org per garantire la corretta funzionalità dei file principali e dei plugin.

Whew! Sono distrutto. È ora di fare una piccola pausa 🙂

Note

  • * Denota che il codice è incluso nel file wp-config.php di default
  • Traduzione portoghese brasiliano (di Tárcio Zemel)