Algunas personas nunca tocarán el archivo que establece los detalles más importantes que hacen que un sitio sea único: wp-config. De hecho, dado que WordPress crea automáticamente el archivo durante su famosa «instalación de 5 minutos», muchos usuarios ni siquiera saben que está allí o que nunca necesitan tocarlo. Eso es genial.
Parte de lo que hace que WordPress sea una gran herramienta, para cualquier cosa, desde simples blogs hasta la columna vertebral de aplicaciones web complejas, es tanto su simplicidad como su flexibilidad. Los diferentes usuarios tienen diferentes necesidades, pero una vez que comience a realizar cualquier tipo de trabajo de desarrollo con WordPress, necesitará realizar algunas personalizaciones, muchas de las cuales comienzan en wp-config.
En este artículo, lo guiaré a través de lo que debe tener wp-config. Después de eso, le mostraré cómo usarlo para ayudar con la depuración y cómo modificar la estructura del directorio de WordPress. Luego, al final, te daré algunos otros consejos rápidos.
Sin embargo, hay una cosa a tener en cuenta antes de comenzar. Cuando digo que wp-config.php debe tener o puede tener, en realidad me estoy refiriendo a ese archivo o cualquier archivo incluido en él. Además, tenga en cuenta que cuando se ejecuta wp-config, casi nada del resto de WordPress se ha cargado todavía. Por lo tanto, no se puede utilizar prácticamente ninguna de las funciones de WordPress. Por esta razón, solo puede usar de forma segura las funciones definidas en el propio PHP.
La mayoría, pero no todo lo que hace en wp-config es establecer los valores de las constantes, por lo que es importante comprender las constantes antes de hablar sobre wp-config. Las constantes son un tipo de identificador que, como una variable, tiene un valor. La gran diferencia entre una constante y una variable es que una vez que se define una constante, su valor no puede cambiar. Son como variables no variables.
Esto significa que podemos usarlos para albergar configuraciones globales para una aplicación, IE WordPress, o para un componente de la misma, IE un complemento o tema.
Las constantes se definen usando una función simple llamada define(). Esta función acepta dos parámetros, el nombre de la constante y el valor. Por convención, las constantes siempre están en mayúsculas. Aquí hay un ejemplo simple:
01
|
define( 'DB_NAME' , 'wp42' ); |
Debido a la naturaleza de las constantes, intentar definir una constante que ya está definida generará un error. Como resultado, a menudo envolvemos definiciones constantes en una verificación condicional usando la función is_defined(), para verificar si la constante ya estaba definida. Por ejemplo, un complemento puede tener un «modo de desarrollo» para que el complemento sea más fácil de depurar, pero menos eficaz. En el complemento en sí, eso se definiría dentro de una verificación condicional, como esta:
01
02
03
04
05
|
if ( ! defined( 'SLUG_DEV_MODE' ) ) { define( 'SLUG_DEV_MODE' , false ); } |
De esta forma, un usuario final puede anular el valor predeterminado definiendo un valor diferente para la constante antes de que se ejecute el complemento. El mejor lugar para hacer esto es en wp-config. ¿Por qué? Porque wp-config es una de las primeras cosas que ejecuta WordPress. Además, cuando actualiza WordPress , wp-config no cambia.
Por eso, podemos hacer varias personalizaciones allí, antes de que WordPress asigne los valores predeterminados.
Qué debe tener wp-config
Hay muchas constantes que puede definir en wp-config, que si no lo hace, WordPress establecerá un valor predeterminado. Pero, hay ciertos valores que no tienen un valor predeterminado y, por lo tanto, debe definirlos en wp-config, o WordPress no funcionará.
Estas constantes sin valores predeterminados se pueden agrupar en dos categorías: credenciales de base de datos y sales de seguridad. Hay una constante requerida más que debe establecer, y es ABSPATH, que es la ruta, relativa a wp-config para WordPress.
Hay algunas otras cosas que debe hacer wp-config que no tienen que ver con constantes. Uno es configurar el prefijo de la base de datos en una variable global, $table_prefix. El otro es cargar el siguiente archivo en el proceso de carga de WordPress. Es por eso que wp-config.php siempre debe terminar con esta línea:
01
|
require_once (ABSPATH . 'wp-settings.php' ); |
A menos que necesite cambiar los detalles de su base de datos más adelante, nunca debería necesitar modificar las constantes de su base de datos. Esos son los que comienzan con DB_. Lo mismo ocurre con las sales. Eso es siempre y cuando no se vean comprometidos.
Ahora que hemos cubierto lo que puede tener wp-config.php, hablemos de los conceptos básicos de lo que puede hacer.
Depuración de WordPress
¿Alguna vez te ha aparecido la temida “ pantalla blanca de la muerte ” y no sabes por qué sucedió? Cuando solo ve una pantalla en blanco, significa que PHP ha encontrado un error fatal. Le habría dicho cuál es el error, pero por defecto WordPress suprime todos los errores y advertencias. Como acabamos de comentar, wp-config es el lugar donde anulamos los valores predeterminados.
Hay tres constantes principales que se ocupan de la depuración. El primero es WP_DEBUG, que activa la depuración en WordPress, cuando se configura así:
01
|
define( 'WP_DEBUG' , true ); |
Ahora esa misma pantalla blanca de la muerte imprimirá un error. La razón por la que no lo hace de forma predeterminada es que probablemente no quieras eso en un sitio en vivo, visible para todo el mundo. Además, no todos los errores y avisos que genera PHP son fatales. Si bien es una buena idea abordar cada uno de ellos, a veces es necesario vivir con ellos.
Eso no significa ignorarlos por completo. Ahí es donde entran las otras dos constantes que mencioné. Puede agregar las siguientes dos constantes para evitar que se muestren errores, pero escríbalas en su registro de errores:
01
02
|
define( 'WP_DEBUG_DISPLAY' , false ); define( 'WP_DEBUG_LOG' , true ); |
Estas funciones hacen exactamente lo que implican sus nombres. El primero WP_DEBUG_DISPLAY, cuando es falso evita que los errores que se mostrarían, si WP_DEBUG se define como verdadero, sean visibles. El segundo, escribirá cada error en un archivo de registro en su directorio de contenido.
Cambiar la estructura del directorio de WordPress
Tenga en cuenta que en el párrafo anterior escribí «contenido-directorio» no «wp-content». Esto se debe a que se llama wp-content cuando usa el valor predeterminado de las dos constantes que definen la ubicación del directorio de contenido. Hago esta distinción no solo para ser semánticamente correcto, sino para señalar por qué una referencia codificada a wp-content nunca es una buena idea.
La ruta a su directorio de contenido se establece mediante dos constantes WP_CONTENT_DIR y WP_CONTENT_URL. Estos establecen la ruta del archivo y la URL para el directorio de contenido. Aquí hay un ejemplo en el que el directorio de contenido cambia de nombre a ‘contenido’ y se mueve dentro de un subdirectorio del directorio en el que se encuentra wp-config.php
01
02
|
define( 'WP_CONTENT_DIR' , dirname( __FILE__ ) . '/resources/content' ); define( 'WP_CONTENT_URL' , 'http://' . $_SERVER [ 'HTTP_HOST' ] . '/resources/content' ; |
Me encanta cambiar el nombre del directorio de contenido a algo que coincida con el nombre del sitio. Esto tiene más sentido al ver la estructura del archivo. Además, significa que puedo buscar en mi computadora el directorio de contenido de un sitio en particular por su nombre y obtener un resultado, a diferencia de una búsqueda de wp-content, que arrojará un resultado para cada sitio de WordPress en mi computadora. además de todas las descargas aleatorias de WordPress que flotan.
También puede mover la ubicación de WordPress cambiando el valor de ABSPATH. Es muy común moverlo a una carpeta llamada ‘wp’, así:
01
02
03
|
if ( ! defined( 'ABSPATH' ) ) { define( 'ABSPATH' , dirname( __FILE__ ) . '/wp/' ); } |
Esta es una excelente opción si tiene su sitio bajo el control de versiones de Git , ya que puede configurar fácilmente a Git para que ignore ese directorio. De esa manera, las actualizaciones de WordPress aún se pueden manejar a través del actualizador de WordPress, y hacerlo no crea una gran confirmación en su repositorio de Git.
¿Que mas puedo hacer?
Puede hacer mucho en wp-config para ayudar a adaptar WordPress para que se ajuste a sus necesidades. Hay muchos otros problemas simples que puedes resolver allí. Por ejemplo, ¿desea deshabilitar los editores de complementos y temas en el administrador de WordPress? Es tan simple como agregar esto a tu wp-config:
01
|
define( 'DISALLOW_FILE_EDIT' , true ); |
Otra cosa buena que puede hacer allí es limitar la cantidad de revisiones para mantener por publicación o deshabilitarlas por completo. El número de revisiones de publicaciones se establece mediante la constante WP_POST_REVISIONS. Para limitar a 15 revisiones, puede hacer esto:
01
|
define( 'WP_POST_REVISIONS' , 15 ); |
O para deshabilitar completamente las revisiones de publicaciones:
01
|
define( 'WP_POST_REVISIONS' , false ); |
Uno más antes de irnos. De forma predeterminada, WordPress asigna 40 MB de memoria a PHP. Una vez que comience a agregar una tonelada de complementos, o comience a trabajar con cualquier cosa que requiera muchas consultas a la base de datos, eso puede convertirse rápidamente en insuficiente.
Por supuesto, hay una constante para anular ese valor predeterminado, WP_MEMORY_LIMIT. Por ejemplo, para asignar 96 MB de memoria, usaría esto:
01
|
define( 'WP_MEMORY_LIMIT' , '96M' ); |
Dejé intencionalmente la «B» en MB. Esta constante siempre debe ser un número seguido de M. Incluso si desea asignar un gigabyte de memoria. En ese caso, usaría «1024M». La otra cosa a tener en cuenta es que si bien puede definir cualquier valor allí, su servidor solo puede asignar tanta memoria como tenga disponible.
Imagen en miniatura del artículo de Jane Kelly / shutterstock.com