En la primera parte de este artículo, describía la configuración básica del archivo wp-config.php que necesitamos para arrancar con nuestra web.
Podemos añadir más funciones para mejorar las prestaciones del sitio, pero tenemos que tener presente que muchas de estas funciones no las usaremos nunca, por lo que está de más activarlas. Como siempre, antes de modificar nada, tenemos que hacer una copia de seguridad accesible de este archivo por si lo necesitamos a consecuencia de algún error.

Opciones avanzadas del archivo wp-config.php
No os hagáis los valientes y activéis todas las funciones de una vez, id probando una a una y siempre si lo necesitáis, añadir por añadir solo genera tener más basura.
Dirección de Wordpres
1 | define('WP_SITEURL', 'http://www.tusitio.com/wordpress'); |
Con esta opción indicamos la dirección donde se encuentra nuestro wordpress, es muy útil si estamos trabajando en modo local, podemos hacer pruebas en el sitio de producción sin tocar la base de datos del servidor. Se desactiva el poder cambiarlo desde la administración del sitio.
Dirección de la página principal
1 | define('WP_HOME', 'http://www.tusitio.com/wordpress'); |
El acceso a la base de datos es continuo y por tanto tiene que dedicar un tiempo en buscar y localizar la información solicitada, esta función evita este paso al indicarle donde se encuentra la página principal en el archivo de configuración. Al igual que en la función anterior, quedaría desactivada en la administración.
Ubicación de los plugins
1 | define("PLUGINDIR", "tu_directorio"); |
Podemos designar donde queremos que se instalen los plugin diciendo en wp-config.php donde queremos que se instalen. Si no se instalarán en la carpeta por defecto wp-content/plugins/.
Dirección de los archivos subidos
1 | define("UPLOADS", "tu/ruta/"); |
También podemos especificar en wp-config.php donde queremos que se alojen los archivos que subimos. Si no usamos esta función se colocarán en la ruta por defecto.
Visualizar fallos
1 | define('WP_DEBUG', true); //false para desactivar |
Aunque ya viene por defecto en las últimas versiones de WordPress en el archivo wp-config.php, esta viene desactivada. Para la gente que se dedica a la programación es muy útil tenerla activada para poder ver donde y cuando se producen los errores que impiden el correcto funcionamiento del sitio.
Idioma
1 2 | define(‘WPLANG’, ‘es_ES’); define('LANGDIR', 'mylanguagedirectory'); |
Aunque mi recomendación es la instalación manual de WordPress en el servidor descargando desde un principio el idioma deseado, la instalación automática desde los servidores no dan la posibilidad de elegir el idioma de la instalación, una vez en el panel de administración podemos seleccionar el idioma deseado. Pero también tenemos la opción de decirle en el wp-config.php que idioma vamos a utilizar y donde queremos que se instale. Si no utilizamos la segunda línea, WordPress instalará el idioma en la carpeta por defecto.
Aquí podéis ver las más de 60 traducciones completas que hay de WordPress y sus prefijos de configuración.
Memoria compartida
1 | define('WP_MEMORY_LIMIT', '64MB'); |
La memoria que requiere Wordpress en ocasiones se nos queda corta en determinadas ocasiones, dándonos un aviso del tipo “Allowed memory size of … bytes exhausted”. Para evitar este problema hay que aumentarla, y añadiendo esta constante al archivo wp-config.php lo conseguimos. La cantidad de memoria que podamos aumentar estará limitada por la que nos ofrezca el servidor.
Cache
1 | define('WP_CACHE', true); // false para desactivar |
Activando esta función en wp-config.php podemos controlar lo que mostramos al visitante de nuestra web. El fichero wp-content/advanced-cache.php se lanza antes que cualquier otra opción.
Tablas de usuarios y datos de usuarios
1 2 | define('CUSTOM_USER_TABLE', 'my_user_table'); define('CUSTOM_USER_META_TABLE', 'my_usermeta_table'); |
Para conseguir una web segura al 100%, lo mejor es no tener web, una vez en la red nadie está libre de ser hackeado y todos podemos perder el control sobre nuestro sitio. Así que todo lo que se haga por protegernos será bueno. Estas funciones cambian la ubicación dentro de la base de datos de las tablas de usuarios y de sus datos.
Modo multisitio
1 | define('WP_ALLOW_MULTISITE', true); |
Con esta línea de código activamos la instalación del modo multisite. Una vez subido el archivo al servidor, hay que refrescar o recargar la página y seguir las indicaciones.
Sirve para activar una red de sitios o blogs gestionados desde un único Wordpres. El super administrador de la red es el encargado de instalar las plantillas y plugins que pueden utilizar el resto de sitios añadidos. Cada sitio puede ser diferente y contener distintas informaciones. En este artículo explico cómo se hace de principio a fin.

Revisiones de las entradas
1 | define('WP_POST_REVISIONS', 5); // false para desactivar |
WordPress viene configurado por defecto para guardar las 25 últimas revisiones de cada post que escribimos, si tenemos un sitio con una cantidad importante de entradas, estas se multiplican por 25 en la base de datos, ya que cada revisión es una entrada nueva en dicha base de datos, llegando a tener un tamaño no deseado. Se puede desactivar o indicar el número de revisiones que deseamos tener.

Tiempo de "auto-salvar"
1 | define('AUTOSAVE_INTERVAL', 120); // tiempo en segundos |
Al igual que las revisiones, las entradas están configuradas para hacer una copia de seguridad cada 60 segundos, lo que significa que la basa de datos aumenta también. Podemos designar en wp-config.php cada cuanto tiempo en segundos queremos que realice la copia.
Vaciar la papelera
1 | define('EMPTY_TRASH_DAYS', 7); // 0 para desactivar |
Cada vez que eliminamos una entrada, una página o un comentario, este se mueve a la papelera por si queremos recuperarlo más adelante. La papelera se vacía cada 30 días, pero podemos decirle en el wp-config.php que este tiempo sea menor indicando cada cuantos días queremos que se ejecute esta acción. También podemos desactivarlo indicando 0 días.
Deshabilitar actualizaciones automáticas
1 | define('AUTOMATIC_UPDATER_DISABLED', true) |
Por defecto, las actualizaciones del core de WordPress vienen activadas. Si quieres tener un control más completo de cuando y como se instalan hay que desactivar esta función.
Si por el contrario sólo queremos desactivar las actualizaciones más importantes y dejar en modo automático la de menor importancia debemos poner en el wp-config.php la siguiente línea:
1 | define('WP_AUTO_UPDATE_CORE', 'minor'); |
Deshabilitar el editor
1 | define('DISALLOW_FILE_EDIT', true); |
Muchas veces nos vemos tentados a modificar código desde el editor de los temas o los plugins desde el menú de administración. Sobre todo clientes que al hacerlo provocan un desastre total al carecer de conocimientos adecuados. Con esto evitamos la tentación de cambiar nada desde los editores de código de temas y plugins.

Desactivar instalación de plugins y temas
1 | define('DISALLOW_FILE_MODS', true); |
Si volvemos a las malas costumbre de los clientes, hay algunos que se quejan de que si sitio se ha ralentizado demasiado y que algunas funciones no cargan. Cuando revisas donde está el problema, te das cuenta que se han instalado 200 plugins, que están todos activos y que además han cambiado la plantilla por una que no tiene las propiedades de la original. Cuando existe el mantenimiento de otras webs, esta es una buena forma de cubrirnos las espaldas.
Imágenes duplicadas
1 | define('IMAGE_EDIT_OVERWRITE', true); |
¿Cuántas veces te ha ocurrido que has subido una imagen y luego has tenido que modificarla y volver a subirla? WordPress genera un nuevo archivo cada vez que subimos una imagen renombrando la nueva y manteniendo la antigua. Para evitar tener imágenes dobles y que no usamos, sobre escribimos el archivo nuevo sobre el antiguo.
Observaciones:
Como habéis podido ver, WordPress nos deja muchas opciones de configuración. Estas que he mencionado no son todas las que hay, si buscáis en internet podréis encontrar más. Existen plugins que realizan muchas de estas funciones, pero ensucian nuestro código.
Hola, tengo 2 webs y necesito compartir usuarios de base de datos del blog1 (sólo usuarios) , pero al realizar el cambio en el wp-config.php del blog2, coloco:
define('CUSTOM_USER_TABLE', 'blog1_users');
define('CUSTOM_USER_META_TABLE', 'blog1_usermeta');
Al hacer esto, ya no me reconoce el administrador del blog2, ni siquiera entrando con los datos del administrador del blog 1.
No sé si me falta configurar algo más o si estoy colocando el código en la línea equivocada. Lo he intentado colocando el código después de:
$table_prefix = 'blog2_';
y despues de:
define('WP_DEBUG', false);
En ningún caso me ha funcionado. Me podrías orientar?
Gracias
Hola Pilar, cada wordpress enlaza directamente con su base de datos y no podemos decirle a otro wordpress que acceda a una tabla determinada de otra base de datos diferente que no sea la suya. Primero habría que exportar las dos tablas correspondientes a las usuarios y a los datos de usuarios de una base de datos a otra. Dentro de los paréntesis se sustituye 'my_user_table' y 'my_usermeta_table' por los nombres de las tablas correspondientes. Para saber los nombres debes entrar en la base de datos a través de un gestor de BD como PhpMyAdmin y localizar las tablas.