Tweaking avanzado del wp-config.php de Wordpress

Fecha: 17/02/2015
En el artículo anterior hablamos sobre el consumo de RAM de algunos de los plugins más utilizados en Wordpress, también hicimos alusión a las consultas que realiza Wordpress a la base de datos MySQL y que algunos plugins pueden hacer demasiadas consultas.
Este articulo va a ser un poco distinto, pero entrando en temas técnicos de Wordpress que son útiles para los que trabajamos con este CMS, pero que muy pocos conocen ya que son sus entresijos.

wordpress php memory

En este artículo vamos a explicar las variables que pueden ser definidas en el archivo wp-config.php de Wordpress, para modificar su funcionamiento o para “ahorrar” peticiones a la base de datos definiendo algunos parámetros que nunca cambian.
Vamos a intentar que este articulo sea lo más completo posible y con la mayor cantidad de información sobre todo lo que puedes incluir en tu wp-config.php, aunque algunos los vamos a excluir de la lista ya que usarlos seria poco inteligente actualmente o por el contrario son cosas demasiado avanzadas como para realizarlas de forma optima con un simple parámetro en el wp-config.php.

Índice del artículo
  • DB_NAME
  • DB_USER
  • DB_HOST
  • DB_CHARSET
  • $table_prefix
  • WP_SITEURL
  • WP_HOME
  • WP_CONTENT_DIR
  • WP_PLUGIN_DIR
  • UPLOADS
  • AUTOSAVE_INTERVAL
  • EMPTY_TRASH_DAYS
  • WP_POST_REVISIONS
  • COOKIE_DOMAIN
  • WP_ALLOW_MULTISITE
  • WP_DEBUG
  • SCRIPT_DEBUG
  • WP_DEBUG_LOG
  • WP_MEMORY_LIMIT
  • WP_MAX_MEMORY_LIMIT
  • WP_CACHE
  • CUSTOM_USER_TABLE
  • CUSTOM_USER_META_TABLE
  • WPLANG
  • WP_LANG_DIR
  • FS_CHMOD_DIR
  • FS_CHMOD_FILE
  • WP_ALLOW_REPAIR
  • WP_HTTP_BLOCK_EXTERNAL
  • WP_ACCESSIBLE_HOSTS
  • DISABLE_WP_CRON
  • DISALLOW_FILE_EDIT
  • DISALLOW_FILE_MODS
  • FORCE_SSL_LOGIN
  • FORCE_SSL_ADMIN
  • AUTOMATIC_UPDATER_DISABLED
  • WP_AUTO_UPDATE_CORE
  • FTP_HOST
  • FTP_USER
  • FTP_PASS
  • MÁS PARAMETROS DEL WP-CONFIG.PHP
  • Extra: Checklist de mantenimiento de WordPress

DB_NAME


El parámetro DB_NAME nos permite configurar y definir el nombre de la base de datos MySQL a la que se conectara Wordpress para funcionar, se define con el siguiente código:
define( 'DB_NAME', 'database_name_here' );

DB_USER


El parámetro DB_USER nos permite configurar y definir el nombre del usuario que usara Wordpress para conectarse a la base de datos MySQL, se define con el siguiente código:
define( 'DB_USER', 'MyUserName' );

DB_PASSWORD

El parámetro DB_PASSWORD nos permite configurar y definir la contraseña que utilizara el usuario definido en DB_USER para acceder a la base de datos MySQL, se define con el siguiente código:
define( 'DB_PASSWORD', 'MyPassWord' );

DB_HOST


Con este parámetro definimos cual será el host de la base de datos, si el servidor MySQL que vamos a usar se encuentra en el mismo servidor debemos usar “localhost” o “127.0.0.1”, en este parámetro también podemos usar un MySQL Socket, se define con el siguiente código:
define( 'DB_HOST', 'MyDatabaseHost' );

DB_CHARSET


Con el parámetro DB_CHARSET podemos configurar la codificación de caracteres de la base de datos MySQL a la que nos vamos a conectar, podemos definirlo con el siguiente código:
define( 'DB_CHARSET', 'utf8' );

$table_prefix


Con el parámetro $table_prefix podemos configurar el prefijo de la base de datos para las tablas de la base de datos MySQL que utilizamos en nuestro Wordpress, podemos definir el prefijo con el siguiente código:
$table_prefix = 'y77_';

WP_SITEURL


Con el parámetro WP_SITEURL podemos definir de forma estática la URL del sitio web Wordpress, incluso podemos configurar como URL un dominio con una subcarpeta, podemos definir la URL del sitio web con el siguiente código:
define( 'WP_SITEURL', 'http://example.com/wordpress' );

WP_HOME


Con el parámetro WP_HOME podemos definir la URL de la página principal del blog, algo parecido al WP_SITEURL pero para el blog (loop de Wordpress), puedes definir esta variable con el siguiente código:
define( 'WP_HOME', 'http://example.com/wordpress' );

WP_CONTENT_DIR


Con el parámetro WP_CONTENT_DIR podemos definir otra ubicación personalizada para el directorio WP-CONTENT de Wordpress, podemos definir este parámetro mediante una ruta interna o mediante una URL, el código usado es el siguiente:
define( 'WP_CONTENT_DIR', dirname(__FILE__) . '/blog/wp-content' );

WP_PLUGIN_DIR


Podemos modificar la localización de la carpeta de plugins con el parámetro WP_PLUGIN_DIR, al igual que en el caso de WP_CONTENT_DIR podemos usar una ruta interna o una URL, el código usado para esto es el siguiente:
define( 'WP_PLUGIN_DIR', dirname(__FILE__) . '/blog/wp-content/plugins' );

UPLOADS


Podemos modificar la localización de la carpeta usada para guardar los archivos subidos mediante el parámetro UPLOADS, el código usado para esto es el siguiente:
define( 'UPLOADS', 'blog/wp-content/uploads' );

AUTOSAVE_INTERVAL


Como muchos sabrán, Wordpress realiza un autoguardado automático de los artículos y páginas que se están editando mediante revisiones, con este parámetro podemos configurar cada cuanto tiempo se guardan revisiones automáticas, el código usado para esto es el siguiente:
define( 'AUTOSAVE_INTERVAL', 160 );

EMPTY_TRASH_DAYS


Este parámetro nos permite configurar cada cuanto tiempo se vacía la papelera de Wordpress, incluso podemos desactivar la papelera de reciclaje. Podemos modificar el comportamiento de la papelera usando el siguiente código:
define( 'EMPTY_TRASH_DAYS', 0 );

WP_POST_REVISIONS


Con la variable WP_POST_REVISIONS podemos activar o desactivar la creación de revisiones por parte del autoguardado de Wordpress, con este parámetro también podemos definir cuantas revisiones se guardan, el código usado para esto es el siguiente:
define( 'WP_POST_REVISIONS', false );


Usando el parámetro COOKIE_DOMAIN podemos definir cuál será el dominio o subdominio principal del blog que tendrá las cookies y las instalara en el navegador del usuario, podría dedicar solo un post a escribir sobre esta opción y sus ventajas, pero creo que no es el momento, el parámetro para definir este parámetro es el siguiente:
define( 'COOKIE_DOMAIN', 'www.askapache.com' );

WP_ALLOW_MULTISITE


Esta opción sirve para activar Wordpress Multisite, después de activar esta opción y entrar a Wordpress debemos seguir un asistente de configuración de la red de blogs. Para activar esto podemos usar el siguiente parámetro:
define( 'WP_ALLOW_MULTISITE', true );

WP_DEBUG


El DEBUG es una de las mejores herramientas para determinar y detectar problemas en una instalación de Wordpress, solo tiene dos modos de funcionamiento, puede estar encendido o apagado. Para activar esto podemos usar el siguiente parámetro:
define( 'WP_DEBUG', true );

SCRIPT_DEBUG


Esta opción la he usado bastante poco ya que apenas le veo utilidad, pero saca algunos errores de Javascript y CSS junto con los errores de PHP cuando el WP_DEBUG está activado, puedes activar el SCRIPT_DEBUG usando el siguiente código:
define( 'SCRIPT_DEBUG', true );

WP_DEBUG_LOG


Si tenemos el WP_DEBUG activado y posteriormente activamos WP_DEBUG_LOG podemos guardar un registro con todos los errores que ha dado la instalación de Wordpress, los archivos de log se guardaran en wp-content para activar el log podemos usar el siguiente parámetro:
define( 'WP_DEBUG_LOG', true );

WP_MEMORY_LIMIT


De forma predeterminada Wordpress impone un límite de memoria usable, podemos forzar la cantidad de memoria RAM utilizada usando el siguiente parámetro:
define( 'WP_MEMORY_LIMIT', '64M' );

Si quieres más información puedes ver nuestro post sobre cómo ajustar el memory_limit en WordPress.

WP_MAX_MEMORY_LIMIT


Este parámetro se parece al WP_MEMORY_LIMIT, pero solo afecta a la memoria utilizada al ejecutar el panel de administración de Wordpress, podemos forzar esta opción con el siguiente parámetro:
define( 'WP_MAX_MEMORY_LIMIT', '256M' );

WP_CACHE


Este parámetro actualmente no se usa para lo que está pensado, pero es necesario tenerlo activado en el wp-config.php para que funcionen algunos plugins de cache para Wordpress, ya que lo que hace es activar el archivo advanced-cache.php, podemos activar WP_CACHE con el siguiente código:
define( 'WP_CACHE', true );

CUSTOM_USER_TABLE


Podemos modificar la tabla donde se guardan los usuarios en la base de datos de Wordpress, aunque en la práctica esto no tiene mucha utilidad, es una opción más que se puede definir con el siguiente código:
define( 'CUSTOM_USER_TABLE', $table_prefix.'my_users' );

CUSTOM_USER_META_TABLE


La tabla META de usuarios guarda datos adicionales sobre los usuarios registrados en una instalación de Wordpress, esta opción nos permite cambiar el nombre de la tabla donde se guardan estos datos, podemos definir esta opción con el siguiente código:
define( 'CUSTOM_USER_META_TABLE', $table_prefix.'my_usermeta' );

WPLANG


Este parámetro nos permite configurar el idioma por defecto de la instalación de Wordpress, evidentemente antes de configurar este parámetro debemos asegurarnos de que nuestra instalación de Wordpress tiene los archivos de idioma en la carpeta correspondiente. Podemos definir el idioma con el siguiente código:
define( 'WPLANG', 'de_DE' );

WP_LANG_DIR


Con este parámetro podemos configurar la carpeta donde Wordpress buscara los archivos de idioma, sinceramente creo que es un parámetro un poco absurdo, pero podemos definir el idioma con el siguiente código:
define( 'WP_LANG_DIR', dirname(__FILE__) . 'wordpress/languages' );

FS_CHMOD_DIR


Este parámetro es uno de los más desconocidos y a la vez uno de los más útiles, ya que nos permite configurar los permisos para las carpetas de la instalación de Wordpress, una excelente utilidad para que nuestro Wordpress tenga los permisos adecuados. Podemos definir los permisos de las carpetas con el siguiente código:
define( 'FS_CHMOD_DIR', ( 0755 & ~ umask() ) );

FS_CHMOD_FILE


Este parámetro es parecido al FS_CHMOD_DIR, pero en este caso lo que hace es definir los permisos de todos los archivos de la instalación de Wordpress, podemos definir los permisos de los archivos con el siguiente código:
define( 'FS_CHMOD_FILE', ( 0644 & ~ umask() ) );

WP_ALLOW_REPAIR


Este parámetro es un gran desconocido, pocos saben que Wordpress trae entre sus utilidades una herramienta para reparar la base de datos de Wordpress, podemos activarla usando el siguiente parámetro:
define( 'WP_ALLOW_REPAIR', true );

WP_HTTP_BLOCK_EXTERNAL


Lo que hace este parámetro es no permitir que Wordpress realice peticiones externas a otros servidores HTTP, es un parámetro útil si estamos realizando un desarrollo sobre Wordpress en local. Podemos aplicar el bloqueo con el siguiente código:
define( 'WP_HTTP_BLOCK_EXTERNAL', true );

WP_ACCESSIBLE_HOSTS


Este parámetro va directamente ligado al anterior, ya que nos permite crear una lista blanca con algunos dominios y hostnames a los que Wordpress sí que podrá realizar peticiones HTTP externas. Podemos aplicar el bloqueo con el siguiente código:
define( 'WP_ACCESSIBLE_HOSTS', 'api.wordpress.org,*.github.com' );

DISABLE_WP_CRON


Podemos activar o desactivar el WP-CRON, este parámetro nos ayudara a desactivar el WP-CRON de Wordpress y comenzar a usar el CRON de Linux, podemos hacerlo con el siguiente parámetro:
define( 'DISABLE_WP_CRON', true );

DISALLOW_FILE_EDIT


Con este parámetro puedes desactivar el editor integrado de themes y plugins desde el panel de Wordpress, puedes desactivar el editor utilizando el siguiente código:
define( 'DISALLOW_FILE_EDIT', true );

DISALLOW_FILE_MODS


Este parámetro nos permite bloquear la instalación y actualización de themes y plugins en una instalación de Wordpress, podemos activar esta opción utilizando el siguiente codigo:
define( 'DISALLOW_FILE_MODS', true );

FORCE_SSL_LOGIN


El parámetro FORCE_SSL_LOGIN te permitirá obligar a que todos los usuarios que quieran entrar al panel de administración de Wordpress lo hagan a través de conexión cifrada HTTPS, podemos activar esta opción con el siguiente codigo:
define( 'FORCE_SSL_LOGIN', true );

FORCE_SSL_ADMIN


Este parámetro se parece al parámetro FORCE_SSL_LOGIN pero tiene una diferencia, en este caso se aplica solo a los administradores de la instalación de Wordpress, podemos activar esta opción con el siguiente código:
define( 'FORCE_SSL_ADMIN', true );

AUTOMATIC_UPDATER_DISABLED


Esta opción nos permite desactivar el actualizador automático de plugins, themes y de Wordpress, una opción útil si tenemos cambios específicos en el código de la instalación de Wordpress y no queremos perderlos, podemos activar esta opción con el siguiente código:
define( 'AUTOMATIC_UPDATER_DISABLED', true );

WP_AUTO_UPDATE_CORE


Esta opción nos permite activar o desactivar las actualizaciones automáticas del núcleo de Wordpress, es decir, de los archivos del propio Wordpress, podemos activar esta opción con el siguiente código:
define( 'WP_AUTO_UPDATE_CORE', false );

FTP_HOST


Esta opción nos permite guardar en la configuración de Wordpress el servidor FTP donde se encuentra la instalación de Wordpress, podemos definir esto con el siguiente código:
define( 'FTP_HOST', 'ftp.example.org' );

FTP_USER


Nos permite guardar el usuario FTP del servidor donde se guarda la instalación de Wordpress, podemos definir esto con el siguiente código:
define( 'FTP_USER', 'username' );

FTP_PASS


Podemos definir también la contraseña del usuario FTP del servidor donde se guarda la instalación de Wordpress, podemos definir y guardar esto con el siguiente código:
define( 'FTP_PASS', 'password' );

MÁS PARAMETROS DEL WP-CONFIG.PHP


Podría contabilizar más de 300 parámetros o variantes de parámetros que podríamos usar en el wp-config.php de Wordpress para modificar funcionalidades en Wordpress o desactivar funcionalidades de Wordpress, es más, esta es la única manera que conozco de cambiar la forma de funcionar del núcleo de Wordpress.
Desgraciadamente si incluyera todos los parámetros y sus variantes esta lista sería imposible de leer y no se podría buscar nada en ella.

Si necesitas ayuda para resolver algún problema en tu Wordpress o estás buscando a alguien para desarrollar tu web sobre Wordpress, nosotros somos los indicados, contacta con nosotros sin compromiso.

Extra: Checklist de mantenimiento de WordPress


Ya para terminar el post, te animo a descargarte la checklist que hemos creado para ayudarte a realizar las frecuentes tareas de mantenimiento que es importante llevar a cabo en WordPress. Así siempre tendrás un documento guardado que podrás utilizar en tus mantenimientos periódicos. Solo tienes que rellenar el siguiente formulario.
Álvaro Fontela
Álvaro Fontela

Alvaro Fontela es consultor WordPress especializado en WPO y rendimiento web, además de co-fundador y CEO de Raiola Networks.

Artículos relacionados

Si te ha gustado este post, aquí tienes otros que pueden ser de tu interés. ¡No dejes de aprender!

Tenemos 6 comentarios en Tweaking avanzado del wp-config.php de Wordpress
Avatar del autor del comentario

Jessica Ventura

16/03/2018 a las 21:20

Unda duda como quedaria
define( 'WP_ACCESSIBLE_HOSTS', 'api.wordpress.org,*.github.com' );
para que tenga acceso google drive

Responder
Avatar del autor del comentario

Héctor Luaces

06/04/2018 a las 09:29

Hola, Jessica.

Depende del endpoint de la API que quieras usar tendrás que añadir más de un sitio. Empieza por dejarlo como:


define( 'WP_HTTP_BLOCK_EXTERNAL', true );
define( 'WP_ACCESSIBLE_HOSTS', '*.google.com' );

Con eso tendrás añadidos todos los subdominios de google.com con lo que debería funcionarte perfectamente. Si te da problemas, coméntame que plugin o endpoint estás usando y, si es posible, qué errores se registran en los logs de PHP.

Un saludo.

Responder
Avatar del autor del comentario

Yam

06/03/2020 a las 18:51

Hola Álvaro, cada vez que actualizo WP tengo problemas con mis páginas, se ocultan imágenes o desparece contenido, hay alguna manera de que esto no ocurra?

Responder
Avatar del autor del comentario

Alvaro Fontela

20/03/2020 a las 12:15
Hola Yam, con tan pocos datos no podemos ayudarte, ya que puede ser por muchas cosas, habría que ver el caso con detenimiento.Si necesitas ayuda profesional, puedes contactar con nuestro servicio especializado en WordPress: enlace
Responder
Avatar del autor del comentario

Luis

27/07/2022 a las 15:57
Hola, no encuentro el lugar donde pueda meter las líneas de código que quiero. Donde he de ir exactamente para encontrar el wp-config.php.

Gracias de antemano
Responder
Avatar del autor del comentario

David Suárez

29/07/2022 a las 11:15
Buenas Luis!
El archivo wp-config.php se encuentra en la raíz de tu instalación de WordPress.

Un saludo :)
Responder

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

¿Vienes desde otro proveedor?

¡Sin problema! Te migramos gratis y sin cortes
Migraciones de hosting gratis