Contenido

wp-config.php, un fichero para gobernarlos a todos

23 mar

+ 29

Con la esperada llegada de WordPress 2.5, el fichero wp-config.php está cogiendo una gran relevancia, si aún podía coger más, dentro de los ficheros importantes de WordPress. Este fichero, hasta ahora conocido por el usuario medio para introducir los datos de conexión a la base de datos, o activar el idioma por defecto de nuestro blog o activar/desactivar el sistema de advanced-cache, poco a poco ha ido incrementando la cantidad de opciones que podemos configurar mediante una simple línea, que a medida que las opciones que WordPress permite personalizar se incrementan, la complejidad del fichero aumenta.

En este artículo, intentaremos destripar el máximo de opciones posibles que podemos modificar y/o activar para que nuestro WordPress se ajuste más a nuestras necesidades.

El fichero wp-config.php  

Cuando instalamos WordPress por primera vez, este nos solicita unos datos necesarios para realizar la conexión a la base de datos, estos datos se almacenan en algún sitio, un lugar en el que WordPress pueda acceder de forma fácil y rápida, para ello se usa el fichero wp-config.php y si lo editamos, veremos que tenemos algo similar a esto (depende de las versiones que sea más o menos diferente):

<?php
// ** MySQL settings ** //
define('DB_NAME', 'wordpress');    // The name of the database
define('DB_USER', 'root');     // Your MySQL username
define('DB_PASSWORD', 'root'); // ...and password
define('DB_HOST', 'localhost');    // 99% chance you won't need to change this value
define('DB_CHARSET', 'utf8');
define('DB_COLLATE', '');

// You can have multiple installations in one database if you give each a unique prefix
$table_prefix  = 'wp_';   // Only numbers, letters, and underscores please!

// Change this to localize WordPress.  A corresponding MO file for the
// chosen language must be installed to wp-content/languages.
// For example, install de.mo to wp-content/languages and set WPLANG to 'de'
// to enable German language support.
define ('WPLANG', '');

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

define('ABSPATH', dirname(__FILE__).'/');
require_once(ABSPATH.'wp-settings.php');
?>

Como podemos ver, está compuesto de una cantidad de opciones que dentro del código de WordPress condicionarán el funcionamiento de nuestro blog.

Conexión a la base de datos 

 Las primeras líneas del fichero se encargan de definir los parámetros que harán posible la conexión a base de datos, para ello necesitaremos los siguiente datos:

define('DB_NAME', 'wordpress');    // El nombre de la base de datos
define('DB_USER', 'root');     // El usuario con permisos para acceder a esa base de datos
define('DB_PASSWORD', 'root'); // El password del usuario
define('DB_HOST', 'localhost');    // Servidor en el que está alojada la base de datos
define('DB_CHARSET', 'utf8');   // Codificación de los datos de la base de datos
define('DB_COLLATE', '');	// Cotejamiento de la base de datos

Tambien en este fichero definimos el prefijo de las tablas que WordPress usará para almacenar nuestro datos, para ello usaremos la variable $table_prefix.

$table_prefix  = 'wp_';   // No usar carácteres especiales

Opciones avanzadas

Además de estas opciones, tenemos muchas más, veámoslas: 

Dirección de nuestro WordPress (WP_SITEURL)

Podemos definir la dirección en la que se encuentra nuestro WordPress directamente mediante la opción WP_SITEURL, esto es perfecto para tener en local una copia de la base de datos que tienes en producción y sin tener que tocar los datos almacenados en la base de datos, hacer que funcionen con la ruta actual. Desde WordPress 2.2.

define('WP_SITEURL', 'http://www.sample.com/wordpress'); 

Dirección de la home del blog (WP_HOME)

La dirección del home de nuestro blog podremos especificarla usando la opción WP_HOME. Esta opción, al igual que la anterior por defecto se almacenan en la base de datos pero al tenerlas previamente definidas en nuestro wp-config.php nos ahorramos una consulta a base de datos y nos permite que abstraer los datos del código mucho más. Desde WordPress 2.2.

define('WP_HOME', 'http://www.sample.com/wordpress');

Esta opción, al igual que la opción anterior desactivan la posibilidad de modificar la ruta del blog desde el panel de administrador. 

Activar modo debug (WP_DEBUG)

Para los que trabajamos con el código, esta opción es realmente útil e interesante ya que con las nuevas versiones de PHP, el tema de los errores se convierte en algo más complicado que leer el error en la pantalla y solventarlo. Con esta opción, activaremos/desactivaremos el reporte de errores. Desde WordPress 2.3.1

define('WP_DEBUG', true); //false para desactivar

Clave secreta (SECRET_KEY)

La nueva versión de WordPress, nos trae una cantidad de mejoras en cuanto a seguridad se refiere, una de ellas es esta opción que se usará para mejorar la encriptación del password de usuarios en la base de datos. Desde WordPress 2.5.

define('SECRET_KEY', 'put your unique phrase here'); 

Incrementar la memoria permitida (WP_MEMORY_LIMIT)

Para evitar problemas del tipo “Allowed memory size of … bytes exhausted” debido al consumo excedido de memoria por parte de WordPress, podemos especifiar el máximo de memoria que queremos limitar para que PHP use. Este valor siempre se verá condicionado con la cantidad de memoria permitida por el servidor web. Desde WordPress 2.5.

define('WP_MEMORY_LIMIT', '64MB'); //64MB de RAM

Cache

La cache de WordPress es algo que ya no es nuevo, pero siempre está bien saber que la opción que hace posible que dichos sistemas de caché funcionen se encuentra en el fichero wp-config.php. Activándola, hacemos que el fichero wp-content/advanced-cache.php sea lanzado antes de cualquier otra opción, permitiendo controlar que es lo que mostraremos el usuario. Desde siempre :D

define('WP_CACHE', true); // false para desactiva

Tablas user y usermeta personalizadas

Por temas de seguridad, nos puede interesar tener las tablas de usuario (wp_users) y de datos extra de los usuarios (wp_usermeta) ubicadas en otras tablas más dificiles de descifrar por indeseables que quieran apoderarse de datos triviales para ciertos blogs. Usando estas opciones haremos un poco (no demasiado) más seguro nuestro WordPress.

define('CUSTOM_USER_TABLE', 'my_user_table');
define('CUSTOM_USER_META_TABLE', 'my_usermeta_table');

Lenguaje y directorio de lenguaje

Para hacer que nuestro wordpress sea más fácil de entender podemos disfrutar de él nuestro idioma, siempre se agradece poder entender las opciones de las que disponemos, por ello necesitaremos los ficheros con las etiquetas en el idioma que deseemos y definiremos en nuestro wp-config.php la ruta y el idioma de donde ha de cargarlo. Por defecto si LANGDIR no se define buscará el idioma en wp-content/languages y wp-includes/languages

define('WPLANG', 'de_DE'); //es_ES español de España
define('LANGDIR', 'mylanguagedirectory');

Directorio de plugins personalizado (PLUGINDIR)

Otra opción interesante es la de PLUGINDIR, que nos permite definir el directorio en el que se ubicarán los plugins. Si no lo definimos, automáticamente pasará a estar cargado con wp-content/plugins/

define("PLUGINDIR", "tu_directorio");

Personalizando las cookies (USER_COOKIE, PASS_COOKIE, AUTH_COOKIE, TEST_COOKIE, COOKIEPATH, SITECOOKIEPATH, COOKIE_DOMAIN)

Para tener un mayor control sobre las cookies que WordPress usa para gestionar a los usuarios, disponemos de una serie de opciones que nos permitirán pulirlas.

define('USER_COOKIE', 'wordpress_test_cookie'); //Nombre de la cookie de usuario
define('PASS_COOKIE', 'wordpress_test_cookie'); //Nombre de la cookie de password
define('AUTH_COOKIE', 'wordpress_test_cookie');
define('COOKIEPATH', 'wordpress_test_cookie'); // Path para el que será válida la cookie
define('SITECOOKIEPATH', 'wordpress_test_cookie'); // Sitio para el que será válida la cookie
define('COOKIE_DOMAIN', 'wordpress_test_cookie');	 //Dominio para el que será válida la cookie
define('TEST_COOKIE', 'wordpress_test_cookie'); // Cookie de test

Tags personalizables para nuestros posts (CUSTOM_TAGS)

Otra opción interesante y desconocida es la de posibilitar al usuario la definición de tags HTML que sus posts podrán incluir. Desde WordPress 1.2.0

define('CUSTOM_TAGS', array());

Define tu directorio para alojar los ficheros subidos (UPLOADS)

Una opción más para personalizar rutas desde un fichero contendor, esta vez se trata de la ruta en la que se ubicarán los ficheros que subamos a nuestro WordPress.

define("UPLOADS", "tu/ruta/");

Comentar

#

Me reservo el derecho de eliminar y/o modificar los comentarios que contengan lenguaje inapropiado, spam u otras conductas no apropiadas en una comunidad civilizada. Si tu comentario no aparece, puede ser que akismet lo haya capturado, cada día lo reviso y lo coloco en su lugar. Siento las molestias.