¿Qué es wp-config.php?
Con el podrás cambiar ubicación de plugins, imágenes, temas, etc.
Puedes entre otras cosas, definir parámetros de PHP, tiempo de autoguardado, desactivar funciones, etc.
En este extenso pero minucioso artículo, descubrirás muchas opciones de de configuración de wordpress para que veas todo lo que puedes hacer con él y cómo sacarle provecho al máximo con las opciones disponibles.
Cambiar las opciones por defecto hacen tu web más segura, ya que los hackers ahora tienen trabajo extra adivinando donde están algunas cosas y como se llaman otras.
¿Para qué sirve 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, esos datos se almacenan en este archivo ubicado en la carpeta raíz de la instalación de WordPress, para que este pueda acceder de forma fácil y rápida.
Su función principal es proporcionar a WordPress los parámetros bajo los cuales va a funcionar. Estos parámetros mal configurados pueden echar abajo toda la web o causar el mal funcionamiento de la misma.
Opciones Comunes de Configuración de WordPress
Vamos a empezar por lo más básico las funciones comunes que ya conocemos, y luego veremos algunas cosas mas interesantes al final.
Configurar la conexión con 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', 'user'); // El usuario con permisos para acceder a esa base de datos define('DB_PASSWORD', 'userpass'); // 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
El prefijo de las tablas, también por seguridad
Lo que siempre se recomienda es cambiarlo por otros caracteres que no sean «wp_». Te recomiendo que uses siempre minúsculas.
$table_prefix = 'wp_'; // No usar caracteres especiales
Activar modo debug (WP_DEBUG) para solucionar problemas
(Exacto! la Pantalla Blanca de la Muerte de WordPress)
Tal vez ya has oído hablar de «la Pantalla Blanca de la muerte» o por si no la conocías, se trata de un error muy común cuando algo falla.
La página se muestra totalmente en blanco, ni siquiera sale un mensaje de error, es muy desconcertante sobre todo cuando te pasa por primera vez. Si acabas de añadir un plugin, tema nuevo o has modificado el código de algo, puede que te pase. Tranquilo no hay nada de qué preocuparse.
WordPress en su afán de hacernos la vida más fácil, nos ofrece una manera rápida de descubrir lo que está pasando tras bastidores. Esto también es una medida de seguridad para evitar que ojos extraños conozcan las fallas de nuestra web. Cuando te pase esto solo tienes que abrir el wp-config.php
buscar esta línea (que ya se encuentra escrita) y activar el reporte de errores.
define('WP_DEBUG', false); //Cambia a true para activar.
De esta forma aparecerán en pantalla todos los errores, incluyendo el que ha ocasionado que la web deje de funcionar. Una vez que identifiques al culpable, corrige la falla y lo vuelves a poner como estaba.
Tal vez te interese leer: Protege tu archivo wp-Config.Php con .Htaccess
Clave secreta (SECRET_KEY)
La nueva versión de WordPress, nos trae una cantidad de mejoras de seguridad, una de ellas es la opción para definir una clave secreta que se utiliza para la encriptación del password de usuarios en la base de datos.
define('SECRET_KEY', 'put your unique phrase here');
Si la instalación está bien echa, generalmente no tendrás que cambiar esto.
Personalizando las cookies (USER_COOKIE)
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
Habilitar la Caché de WordPress
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 qué es lo que mostraremos el usuario.
define('WP_CACHE', true); // false para desactivar define('WPCACHEHOME', '%%CarpetaDelServidor%%/plugins/wp-super-cache/' ); //Define la carpeta de la caché
Opciones Avanzadas de Configuración de WordPress que probablemente no conocías
A partir de aquí viene el rock and roll. Una de las cosas que debes saber antes de experimentar con esto es que a veces algunos plugins y temas, no están bien optimizados. Como consecuencia puede que no funcionen correctamente con algunas opciones de configuración avanzada. Así que siempre haz respaldo de wp-config.php antes de hacer cambios.
URL de la Página Web (WP_SITEURL)
Podemos definir la url en la que se encuentra nuestro WordPress directamente mediante la opción WP_SITEURL
. Esta opción es ideal cuando quieres poner un blog en una página web estática o que no utiliza wordpress. Puedes crear una carpeta llamada «blog» e instalas WordPress allí. utilizar esta opción también ayuda a reducir las consultas a la base de datos.
define('WP_SITEURL', 'https://tu-dominio.com/wordpress');
y ubicación de archivos de WordPress (WP_HOME)
La dirección del home de nuestro blog podremos especificar 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 optimizar un poco mejor nuestro sitio web.
define('WP_HOME', 'https://tu-dominio.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.
Aumentar la memoria de PHP para WordPress (WP_MEMORY_LIMIT)
¿Usas Woocommerce? No puedes trabajar sin hacer este cambio. Para evitar problemas del tipo “Allowed memory size of … bytes exhausted” debido al alto consumo de memoria por parte de WordPress, podemos especifiar cuanta memoria usará PHP. Este valor siempre se verá condicionado con la cantidad de memoria permitida por el servidor web. Si tu servidor web solo permite 64MB aunque definas un valor mayor no podrás usarlo.
define ('WP_MEMORY_LIMIT', '128M' ); // Límite de memoria a usar por WP define ('WP_MAX_MEMORY_LIMIT', '256M' ); // Límite de memoria MAXIMA a usar por WP
Tablas wp_user y wp_usermeta personalizadas
Por razones de seguridad, es posible tener las tablas de usuario (wp_users
) y de datos extra de los usuarios (wp_usermeta
) ubicadas en otras tablas más difíciles de ubicar. De esta forma evitamos que algún malware las encuentre fácilmente y se apodere de los datos o cree usuarios fantasmas. Usa esta opción cuando tu hosting no sea muy seguro y sospechas que hay huecos de seguridad, o cuando te haya pasado que algún malware ha creado administradores fantasmas.
define('CUSTOM_USER_TABLE', 'my_user_table'); define('CUSTOM_USER_META_TABLE', 'my_usermeta_table');
Lenguaje y directorio de lenguaje ( Obsoleto a partir de 4.x)
Para disfrutar de WordPress en nuestro idioma anteriormente se utilizaba esta configuración. Actualmente está obsoleto pero si por algún motivo estas trabajando con una versión antigua aquí van 2 ejemplos de cómo se usa:
define('WPLANG', 'es_VE'); //Español de Venezuela define('WPLANG', 'es_ES'); //Español de España
Directorio personalizado para los plugins (PLUGINDIR)
Esta es una de mis favoritas y la utilizo mucho en mis propios proyectos para hacerles la puñeta a los hackers. Cuando algo no esta en su ubicación por defecto es mucho más difícil explotar una vulnerabilidad.
Para definir el directorio en el que se ubicarán los plugins puedes usar cualquiera de las 2 opciones, aunque se recomienda la primera:
define ('WP_PLUGIN_DIR', $_SERVER['DOCUMENT_ROOT'] . '/plugins' ); // Cambia la ubicación por defecto de los plugins define ('WP_PLUGIN_URL', 'https://tu-dominio.com/plugins'); // Cambia la URL por defecto de los plugins
Tags personalizables para nuestros posts (CUSTOM_TAGS)
Otra opción interesante y desconocida es la definición los tags HTML que se pueden incluir en las publicaciones.
define ('CUSTOM_TAGS', array());
Define tu directorio para alojar los ficheros subidos (UPLOADS)
Otra vez podemos hacerle la vida de cuadros a los hackers. Esta es otra opción más para personalizar rutas. Esta vez se trata de la ruta en la que se ubicarán los ficheros que subamos a nuestro WordPress.
define( 'UPLOADS', 'wp-content/carpeta-de-archivos' );
Desactiva WP_CRON en sitios con mucho tráfico
Si tienes un sitio web con WordPress que tiene un tráfico descomunal (más de 1.000 visitas por hora) esta opción te ayudará a mejorar el rendimiento del servidor. El archivo wp-cron.php ejecuta las tareas programadas cada vez alguien visita la página web.
Si tu página web recibe 1.000 visitas en 1 minuto, wp-cron se ejecutará 1.000 veces en ese minuto. Por lo que representará una carga de trabajo extra e innecesario para el servidor. En lugar de eso puedes ejecutarlo manualmente en una hora de poco tráfico, a través de crontab.
Desactivar las actualizaciones automáticas
Desactivación de actualización automática de archivos de núcleo wordpress sin usar plugin. Para desactivar la actualización automática de wordpress sin plugin necesita cpanel o FTP detalles para acceder al archivo wp-config.php.
Comience a editar el archivo wp-config.php y agregue el siguiente código al archivo wp-config.php. De modo que se detendrá la actualización automática de wordpress archivo de núcleo de forma automática.
Esto desactivará las actualizaciones automáticas de WordPress del núcleo, tema y plugins
define ('-'
Esto sólo desactivará la actualización automática del núcleo de WordPress
define ('-'
Y luego guardarlo eso es todo aquí después de su sitio web wordpress no se actualizará automáticamente.
Nota: Desactivar estas actualizaciones es fuertemente desaconsejado por wordpress
Configurar datos de FTP en WordPress en el archivo wp-config.php
Las instalaciones de WordPress que hacemos suelen estar en una amplia variedad de servidores, que muchas veces nos vienen dados por los clientes.
A veces algunos de los hostings crean problema a la hora de actualizar los plugins y el núcleo de WordPress porque no tienen acceso directo al FTP o hay que introducir sus datos cada vez que se actualiza.
Por esta razón solemos configurar estos datos en el archivo wp-config.php para no tener ese problema y tampoco tenerla al hacer mantenimiento remoto.
Para configurar los datos del FTP en wp-config.php de WordPress, hay que añadir las siguientes líneas al archivo:
define ('FTP_USER', 'nombredeusuario'); define ('FTP_PASS', 'clave'); define ('FTP_HOST', 'servidorftp');
Pero hay más parámetros que se pueden configurar. Esta es la lista completa, según el Codex de WordPress:
define ('FS_METHOD', 'ftpext'); define ('FTP_BASE', '/path/to/wordpress/'); define ('FTP_CONTENT_DIR', '/path/to/wordpress/wp-content/'); define ('FTP_PLUGIN_DIR ', '/path/to/wordpress/wp-content/plugins/'); define ('FTP_PUBKEY', '/home/username/.ssh/id_rsa.pub'); define ('FTP_PRIKEY', '/home/username/.ssh/id_rsa'); define ('FTP_USER', 'username'); define ('FTP_PASS', 'password'); define ('FTP_HOST', 'ftp.example.org'); define ('FTP_SSL', false);
P.D. Hay muchos hostings en los cuales esto no es necesario y que automáticamente WordPress puede actualizarse. En este caso no hace falta configurar estos datos. Solamente cuando en cada actualización nos sale la pantalla pidiendo los datos del FTP para poder actualizar.
Otras configuraciones avanzadas y desconocidas
Esta configuración avanzada de Wp-Config.php la utilizaba antes en mis blogs pero no la recomiendo salvo en casos muy particulares.
define('WP_ALLOW_REPAIR', true); // Permite ejecutar : https://www.tudominio.com/wp-admin/maint/repair.php para reparar la base de datos define ('WP_LANG_DIR', $_SERVER['DOCUMENT_ROOT'].'/idiomas'); // Define la carpeta que contiene los archivos de lenguaje define ('WP_POST_REVISIONS', 5); // máximo de revisiones a guardar define('AUTOSAVE_INTERVAL', 600 ); //10 minutos el intervalo de autoguardado. // Con esto oculta los errores y los imprime en un archivo log personalizado en una carpeta no accesible desde de la web. @ini_set('log_errors','On'); @ini_set('display_errors','Off'); @ini_set('error_log','/home/user/access-logs/php_wp_error.log');
Espero que este poste te haya servido de ayuda.