Configuración avanzada de wp-config.php en WordPress

Publicada en WordPress.

Uno de los archivos más importantes en tu instalación WordPress es wp-config.php. Lo podrás encontrar en la raíz del directorio donde tengas instalado WordPress en tu servidor y contiene detalles básicos sobre la configuración de tu web, como por ejemplo la información de conexión a la base de datos.

Si ni siquiera conocías su existencia, no te preocupes, es normal. Hoy en día no es necesario editarlo durante la instalación de WordPress, ya que el instalador lo hará por ti automáticamente. Además, cuando descargas WordPress para hacer una instalación en un servidor de forma manual, el archivo wp-config.php no está incluido. Es el proceso de instalación el que creará este archivo con la información que le proporciones.

Alternativamente puedes crear un archivo wp-config.php duplicando el archivo wp-config-sample.php (que encontrarás en el directorio raíz de la instalación WordPress) y guardándolo como wp-config.php.

La gracia de este archivo es que nos permite definir configuraciones avanzadas de nuestra web en WordPress añadiendo directivas adicionales. Aunque las puedes encontrar todas en el Codex de WordPress, en este artículo repasaremos algunas de las más curiosas y útiles.

Pero antes de empezar, debo advertirte de que si te cargas este archivo dejarás tu instalación WordPress inaccesible. Por tanto, recuerda hacer una copia de seguridad de tu wp-config.php antes de empezar a editarlo para así poder recuperar el estado inicial en caso necesario. Además, recuerda abrirlo y editarlo con un editor de texto que no añada formato o codificaciones extrañas (vamos, que no lo abras con el Word o similar). Si estás listo, ya puedes seguir adelante.

Configuraciones adicionales en wp-config.php

Al editar, ten en cuenta que el orden de las directivas dentro del archivo wp-config.php es importante. Por ello, si ya dispones de un archivo wp-config.php, cambiar el orden de las directivas existentes puede hacer que tu sitio web deje de funcionar. Si vas a añadir nuevas directivas a tu archivo wp-config.php (como las que te voy a explicar a continuación), hazlo al final del archivo pero justo antes de las líneas que empiezan por require_once. De este modo evitarás problemas 😉

Cambiar el prefijo de las tablas WordPress

La base de datos de WordPress es el contenedor de todos los datos de tu instalación WordPress. Estos datos se guardan en tablas, y todas las tablas de WordPress tienen el prefijo wp_ en el nombre por defecto (wp_posts, wp_comments, wp_users, …).

En una misma base de datos no es posible tener dos tablas diferentes con el mismo nombre. Por esto, si estás pensando instalar en una misma base de datos las tablas de dos o más instalaciones WordPress diferentes, no podrás hacerlo. A no ser, claro, que las tablas de las diferentes instalaciones tengan nombres diferentes. Y esto es lo que podemos hacer definiendo prefijos diferentes en cada uno de los archivos wp_config.php de las instalaciones WordPress. Tan solo incluye la siguiente línea:

$table_prefix = 'prefijo_'; // Sólo números, letras y guiones bajos

Ten en cuenta que tendrás que cambiar prefijo_ por un valor diferente en cada wp-config.php para evitar tener valores repetidos. Y el valor que elijas para el prefijo sólo puede contener números, letras o guiones bajos. Así de fácil.

Cambiar la localización de directorios WordPress

Una instalación WordPress tiene varios directorios importantes. Quizás los más relevantes son uploads, themes y plugins, que guardan los archivos de la biblioteca de medios, los temas WordPress y los plugins que tengamos instalados. Todos ellos se encuentran dentro del directorio wp-content de la instalación WordPress, como podemos ver a continuación:

  • raiz/wp-content/uploads/
  • raiz/wp-content/themes/
  • raiz/wp-content/plugins/

Sin embargo, podemos querer cambiar esas rutas por otras diferentes. Y para hacerlo, sólo tenemos que añadir nuevas directivas en el archivo wp-config.php para modificar dónde queremos que esté el directorio wp-content. Podemos incluso colocarlo fuera de la instalación WordPress. Sólo hay que definir la constante WP_CONTENT_DIR para que apunte a la nueva ruta absoluta:

define( 'WP_CONTENT_DIR', dirname(__FILE__) . '/nueva/ruta/wp-content' );

Y también definir la constante WP_CONTENT_URL para que apunte a la URI del directorio wp-content:

define( 'WP_CONTENT_URL', 'http://miweb.com/nueva/ruta/wp-content' );

Con esto, ya podemos mover el directorio al nuevo destino. Tendremos que tener cuidado ya que habrá también que cambiar en la base de datos las rutas antiguas para que apunten a las nuevas, en caso necesario. Es aconsejable hacer este cambio en el momento de la instalación, para evitar problemas.

Cambiar la configuración de las revisiones

WordPress por defecto guarda diferentes revisiones de las entradas y páginas a medida que las vamos editando. Esto nos permite volver hacia versiones anteriores en caso necesario, pero también tiene como contrapartida que nuestra base de datos almacena más datos (los de las revisiones) que pueden ser inútiles.

Sin embargo, podemos hacer que WordPress no guarde esas versiones añadiendo la siguiente directiva en nuestro wp-config.php:

define( 'WP_POST_REVISIONS', false );

Otra opción es la de limitar el número de revisiones que se guardarán en la base de datos. Para ello, usaremos esta otra directiva:

define( 'WP_POST_REVISIONS', 3 );

cambiando el valor (en el caso anterior, un tres) por el que consideres oportuno.

Aumentar la memoria disponible para PHP

Seguro que si tienes un poco de experiencia con instalaciones WordPress, alguna vez te has encontrado con este problema. Vas a instalar un plugin o un tema y resulta que te salta un error que dice que no tienes memoria suficiente.

Hay varias maneras de solucionarlo, pero una de las más fáciles que puedes probar es añadiendo la siguiente directiva en wp-config.php:

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

Donde definimos la constante WP_MEMORY_LIMIT y el valor de memoria de 96 Megas. Incluso puedes cambiarlo por uno más alto, como por ejemplo 512 Megas:

define( 'WP_MEMORY_LIMIT', '512M' );

De esta forma aumentamos la memoria que PHP puede usar. Ten en cuenta que si aún así no consigues resolver el problema, tendrás que mirar qué configuración de PHP tienes y de cuánta memoria dispones en tu servidor.

Cambiar la configuración de actualizaciones de WordPress

Como ya sabrás, desde hace ya algunas versiones de WordPress, hay actualizaciones que se hacen de forma automática. Esto es altamente recomendable, pero en algunos casos nos puede interesar mantener una versión concreta y evitar que las cosas se actualicen automáticamente. Por ejemplo, porque queremos tener un entorno de pruebas con una versión concreta para probar nuestros desarrollos.

Conseguir que WordPress no se actualice automáticamente es tan sencillo como añadir la siguiente directiva en wp-config.php:

define( 'AUTOMATIC_UPDATER_DISABLED', true );

Desactivar la edición de plugins y temas

Si te encargas de gestionar una instalación WordPress con varios administradores, es posible que quieras que estos no puedan editar ni los plugins ni los temas que hay instalados (para que no te hagan un destrozo, básicamente).

Sólo hay que desactivar los editores del panel de administración de WordPress. Tan simple como incluir la siguiente directivaen wp-config.php:

define( 'DISALLOW_FILE_EDIT', true );

Compartir usuarios entre varias instalaciones WordPress

Si quieres compartir los usuarios entre dos o más instalaciones WordPress individuales, lo puedes hacer añadiendo dos directivas a tus archivos wp-config.php:

define( 'CUSTOM_USER_TABLE', 'compartido_users' );
define( 'CUSTOM_USER_META_TABLE', 'compartido_usermeta' );

Estas dos directivas te permiten definir el nombre de las tablas de usuarios (por defecto wp_users y wp_usermeta) a usar en una instalación WordPress. Hacer esto en varias instalaciones permite compartir usuarios, contraseñas de acceso e información adicional de los usuarios. Es la mejor manera de configurar varias webs en WordPress con sincronización de cuentas de usuario.

Generación asistida de wp-config.php

Si todo esto de añadir directivas en un archivo PHP como es wp-config.php te ha parecido complicado, no te preocupes. Una buena opción alternativa es la de usar un asistente como GenerateWP, que nos permite generar un archivo wp-config.php válido indicando nuestras preferencias a través de las opciones de un formulario.

Generando un wp-config.php con GenerateWP
Generando un wp-config.php con GenerateWP

Como puedes ver en la captura anterior es algo realmente sencillo. Además podemos ir viendo cómo va quedando el wp-config.php resultante a medida que realizamos cambios. Una vez tengamos nuestro archivo de configuración listo, sólo hay que guardarlo y ponerlo en nuestra instalación WordPress. Automáticamente los cambios tendrán efecto.

Resumen final

El archivo wp-config.php es muy importante en tu instalación WordPress. Y además, permite configuraciones avanzadas que posiblemente desconocías. En este tutorial hemos visto algunas que pueden ser realmente útiles. Y si no te sientes cómodo editando archivos de configuración, siempre puedes generar el contenido de wp-config.php a través de un asistente online como GenerateWP.

Espero que pruebes alguna de estas configuraciones para personalizar el comportamiento de tu WordPress. Si tienes algún problema, o crees que me he dejado alguna otra configuración que también valdría la pena discutir, házmelo saber a través de los comentarios.

FlojaNo está malBienMuy bien¡Impecable! (5 votos, promedio: 4,40 de 5)
Cargando…

15 comentarios en «Configuración avanzada de wp-config.php en WordPress»

  1. Muchas gracias por tu post!! resultan muy útiles estas herramientas para empezar!!

    Tengo una consulta, quiero poder subir archivos de diferentes extensiones como productos descargables, y wordpress no me está permitiendo seleccionarlos para subir. Solo me deja jpg, png, pdf, es decir los clásicos y conocidos, pero necesito subir archivos de extensiones como «.studio» y no puedo hacerlo.

    Agregué una línea en mi wp-config.php que dice: define(‘ALLOW_UNFILTERED_UPLOADS’, true);
    Quizás la gregé en el sitio incorrecto, no había ninguna línea que empezara con: require_once

    Conclusión que no me dio ningún resultado… alguna sugerencia?

    1. Hola Serena. Para poder subir archivos con extensiones diferentes aparentemente lo que haces debería ser suficiente. No obstante, prueba a añadir un hook en tu functions.php tal y como te explican en este artículo. Quizás así si te funcione. Ya nos dices que tal te ha ido.

      1. Muchas gracias por tu respuesta! finalmente me di cuenta de que lo que yo necesitaba no requería tanta vuelta! Simplemente quería colocar archivos descargables para la tienda, y lo solucioné subiéndolos en zip. De ese modo puedo subir cualquier extension de archivo. A veces lo mas simple no es tan obvio… De momento me doy por solucionada! Gracias!

  2. Gracias por tu tutorial. Me ha ayudado mucho. Gran Trabajo.
    Aunque he apendido, no he solucionado mi duda:
    Tengo en wordpress una consulta a la BBDD de wp a una tabla que creado. Realizo la consulta y me funciona, pero me preocupa la seguridad y que accedan a mis datos pues en el código aparecen los valores de BBDD, Host, user y password.
    Quiero poner variables globales pero no funciona. Por lo que he hecho al revés: he puesto el nombre de las variables que figuran de wp_config en las llamadas PHP: «$con = mysql_connect($DB_HOST,$DB_USER,$DB_PASSWORD);» y no funcionan.
    Podrías ayudarme a entender por que no puedo llamar a estas variables y ¿Dónde he de poner esta información?

    1. Hola vampur. ¿Qué error tienes? Asegúrate de que has hecho el cambio correctamente y contacta con el soporte técnico de tu hosting. Ellos podrán verificar que lo que has hecho lo hiciste bien.

  3. Hola. Estoy creando una carpeta en mi localhost, pero resulta que no quiere conectar con la base de datos. En primera instancia me aparece: Error al establecer una conexión con la base de datos. Luego creo personalmente una archivo wp-config.php por medio de Generate wp-config y le doy los datos respectivos, ya cuando genero un archivo con los datos me aparece: El archivo wp-config.php ya existe. Si necesitas recuperar algunos de los elementos de configuración de este archivo bórralo primero. Puedes probar a instalarlo ahora. La verdad he intentado hasta reintalar el xampp y tampoco se me da. Ya no se que más hacer.

    Quiero aclarar que estoy trabajando en LocalHost por medio de Xampp.

    Gracias.

    1. Hola Francisco. ¿Has creado una base de datos para tu WordPress? Te recomiendo que sigas todos los pasos que se explican aquí. Y si estás usando Mac, quizás deberías probar Local, que es mucho más fácil de gestionar para instalaciones WordPress locales. No se si existe algún programa equivalente para Windows.

      1. es correcto, siempre mejor antes de ir a productivo pasar por una Sandbox

        Saludos

  4. Hola! el tema es super interesante!

    existe esta herramienta que te permite sin editar una linea dentro del archivo wp-config.php de wordpress realizar tareas como la que mencionas en tu comentario, a demas este te permite editar configuraciones de seguridad/privacidad para tu sitio en WP con unos sencillos clicks siempre y cuando conozcas la taxonomia de CMS

    WP Hide & Security Enhancer

    Saludos,

Deja un comentario

No publicaremos tu correo electrónico. Los campos obligatorios están marcados con: •

He leído y acepto la Política de privacidad de Nelio Software

Al marcar la casilla de aceptación estás dando tu legítimo consentimiento para que tu información personal se almacene en SiteGround y sea usada por Nelio Software con el propósito único de publicar aquí este comentario. Contáctanos para corregir, limitar, eliminar o acceder a tu información.