Nuestro Blog

Manuel Piquer Estudio

La guía avanzada del desarrollador para el archivo wp-config

¿Qué  sabes realmente de wp-config

¡Hay una sorprendente cantidad de poder en esas pocas líneas de PHP! Este artículo es un recorrido por algunas partes wp-configque tal vez no conocías, pero que realmente deberías conocer.

¿Sabes todo lo que hay que saber sobre el wp-config.phparchivo? ¿Has leído toda la página de documentación de WordPress al respecto? ¿Hasta el final?

Si ya está familiarizado con los conceptos básicos de wp-config, entonces leer la documentación oficial de WordPress probablemente será un verdadero festival de siesta.

Si quieres las verdaderas delicias de los desarrolladores, agrupadas por tema y entregadas con lo que solo podría llamarse «un entusiasmo totalmente innecesario por unas pocas constantes de PHP», entonces quédate: estoy a punto de volver a wp-config.phpser genial.

¿Quién debería leer esto?

Este artículo está dirigido a desarrolladores y usuarios avanzados que ya saben cómo editar el wp-config.phparchivo y conocen algunos de los ajustes de configuración que puede poner en él.

No voy a decirte cómo editar el archivo usando FTP o cPanel, o por qué no deberías usar MS Word para editarlo.

No voy a decirle cómo configurar su base de datos o revisar la configuración heredada que estaba usando en 2013 pero que realmente no debería necesitar más. Y la mayoría de los anfitriones se encargarán de lo básico por ti de todos modos.

Si es nuevo en wp-config.php, no hay escasez de guías que le brindarán los conceptos básicos , o siempre puede profundizar en la documentación oficial .

¿Por qué deberías leer esto?

Sí, sí, te escucho. Si los detalles básicos de lo que puede poner en este artículo están cubiertos en otra parte, y si su anfitrión se encarga de la mayoría de los aspectos básicos de todos modos, ¿por qué debería leer esto? Y, de hecho, ¿por qué dedico mi tiempo a escribirlo?

Bueno, si está contento con la edición wp-config.phpy conoce los conceptos básicos de lo que hace, entonces probablemente sea al menos un desarrollador de WordPress de nivel intermedio.

Probablemente sea, al menos en parte, responsable de alojar sitios grandes, probablemente para clientes. Por lo tanto, necesita saber cómo puede usar este archivo en caso de emergencia. Y para comprender lo suficiente este archivo, si lo edita, no hará nada malo.

Además, es casi seguro que querrá bloquear ciertas características de WordPress más allá de lo que su host le permitirá configurar automáticamente.

¡Es probable que haya cosas con las que ni siquiera sabes que puedes hacer wp-config.php! Algunos «¡Ajá!» momentos para tener.

Este artículo es un punto de referencia útil para configurar algunas de las funciones internas de WordPress. Así que sigue leyendo, marca y comparte con tus amigos y colegas.

Los fundamentos

Dije que este no era un artículo para principiantes, pero debemos establecer los hechos básicos para asegurarnos de que estamos en el mismo punto de partida.

El wp-config.phparchivo vive en la raíz de su instalación de WordPress (puede vivir en otros lugares, pero llegaremos a eso), se carga como parte de la inicialización de WordPress y le permite configurar el núcleo de WordPress.

Es esencial para el funcionamiento de WordPress. Almacena un conjunto de constantes que le permiten especificar:

  • La conexión de la base de datos y el prefijo de la tabla que usa WordPress.
  • Información de seguridad como sales y claves de autenticación.
  • Configuraciones para otras características del núcleo de WordPress como WP_CACHEWP_DEBUG.
  • Configuraciones para complementos que pueden agregar sus propias opciones al archivo.
  • Sus propias opciones de configuración.

Crucialmente, wp-config.phpes un archivo específico del entorno. Su contenido puede (¡y debe!) ser diferente para diferentes sitios. Incluso las copias locales, provisionales y en vivo del mismo sitio tendrán valores diferentes en el archivo.

WordPress viene con un wp-config-sample.phparchivo que contiene el mínimo de detalles que WordPress necesita para funcionar. Puede copiar esto a su cuenta wp-config.phpcomo parte de la instalación, pero en estos días eso generalmente se hace por usted.

Finalmente, solo tenga en cuenta que es posible que cuando abra un wp-config.phparchivo desde un sitio existente, pueda ver algunas constantes antiguas de PHP para funciones heredadas, como permisos de archivo predeterminados y credenciales de FTP para ejecutar actualizaciones . No los cubriremos aquí, ya que es poco probable que necesite usarlos.

Visualización de constantes wp-config

Hay algunas formas de verificar rápidamente los valores de las constantes de WordPress sin usar SSH en un servidor remoto y abrir el archivo.

La función Salud del sitio del núcleo de WordPress le permite ver algunos valores básicos navegando a Herramientas -> Salud del sitio -> Información -> Constantes de WordPress. Las constantes de la base de datos también se pueden ver en la sección «Base de datos» de la misma página.

Constantes de la base de datos, que se muestran aquí en la sección Base de datos de la página Salud del sitio de WordPress.

El complemento Query Monitor tiene un panel de «Entorno» donde puede ver algunas wp-configconstantes de uso común.

El panel "Entorno" del complemento Query Monitor, que muestra algunas constantes wp-config de uso común.

WP-CLI , la interfaz de línea de comandos de WordPress, tiene un wp configcomando que se puede usar para obtener y establecer constantes en archivos wp-config.php. Esto normalmente requeriría que SSH primero, pero si configura alias en su configuración de WP-CLI, puede crear un acceso directo rápido para ver y modificar constantes en wp-configarchivos remotos.

Análisis del proceso de carga de wp-config.php

Es útil saber cuándo wp-config.phpse carga el archivo, ya que esto determina algunas de las cosas que puede y no puede hacer con él. Es un buen ejercicio rastrear el proceso de carga:

  • WordPress comienza a cargarse con el index.phparchivo. Esto requiere el wp-blog-header.phparchivo.
  • Prácticamente lo primero que wp-blog-header.phphace es cargar wp-load.php.
  • A continuación, wp-load.phpestablece la constante ABSPATH (el directorio central base de WordPress) y se inicializa error_reporting()antes de cargar wp-config.php.

Este proceso de carga, y el código en wp-load.phpparticular, nos puede enseñar algunas cosas interesantes. Aquí está ese código:

/*
 * If wp-config.php exists in the WordPress root, or if it exists in the root and wp-settings.php
 * doesn't, load wp-config.php. The secondary check for wp-settings.php has the added benefit
 * of avoiding cases where the current directory is a nested installation, e.g. / is WordPress(a)
 * and /blog/ is WordPress(b).
 *
 * If neither set of conditions is true, initiate loading the setup process.
 */
if ( file_exists( ABSPATH . 'wp-config.php' ) ) {

        /** The config file resides in ABSPATH */
        require_once ABSPATH . 'wp-config.php';

} elseif ( @file_exists( dirname( ABSPATH ) . '/wp-config.php' ) && ! @file_exists( dirname( ABSPATH ) . '/wp-settings.php' ) ) {

        /** The config file resides one level above ABSPATH but is not part of another installation */
        require_once dirname( ABSPATH ) . '/wp-config.php';

} else {

        // A config file doesn't exist.

        // [Code here to load the setup screen for in-browser configuration]

}

¿Qué vemos aquí?

wp-config.php se puede mover hacia arriba

Primero, el comentario nos dice que podemos poner wp-config.phpen la “raíz de WordPress”. Lo que no menciona es que la «raíz» en realidad puede ser un directorio sobre el ABSPATHlugar donde wp-load.phpvive.

Podemos ver este cheque adicional en el elseifdonde busca dirname( ABSPATH ) . '/wp-config.php'. La condición adicional en el elseifse explica en el comentario.

La pantalla de configuración se carga si no hay un archivo wp-config.php

En segundo lugar, podemos ver que si no existe un archivo de configuración, cargará la pantalla de configuración.

Es muy posible que nunca antes hayas visto esta pantalla. Le permite ingresar la información de configuración inicial, como las credenciales de la base de datos, en una interfaz de usuario basada en la web:

La pantalla de configuración de WordPress que rara vez se ve. WordPress carga esto si no encuentra un archivo de configuración, lo que le permite establecer las opciones de configuración manualmente.

Esta es una característica de WordPress que vale la pena conocer. Si alguna vez coloca los archivos principales de WordPress en un servidor web disponible públicamente, pero no crea un wp-config.phparchivo, alguien más (o, más probablemente, un bot) puede venir y configurar WordPress a su manera y posiblemente comprometer su alojamiento. .

wp-config.php carga muy temprano

La tercera cosa a tener en cuenta es que wp-config.phpse carga muy temprano en la secuencia de inicio de WordPress. Esto significa que:

  1. Hay muchas cosas que no podemos hacer en wp-config.php. Por ejemplo, no podemos agregar ganchos (acciones o filtros) aquí porque las funciones y las estructuras de datos para hacerlo aún no están cargadas. Y no tenemos acceso a ninguna de las funciones internas, objetos y API de WordPress.
  2. Tenemos mucho control sobre lo que sucede a continuación. Debido a que el archivo se carga tan pronto, tiene mucha influencia sobre WordPress. Esto es bueno y malo. Fácilmente podemos hacer que WordPress muera por completo. Pero también podemos acceder a cualquier cosa que esté definida wp-config.phpdesde prácticamente cualquier otro lugar de WordPress.

¡No te metas con wp-config.php!

Lo último que aprendemos de este proceso es que este gran poder conlleva una gran responsabilidad.

En la parte inferior del wp-config.phparchivo están estas líneas:

/* Add any custom values between this line and the "stop editing" line. */
/* That's all, stop editing! Happy publishing. */
/** Absolute path to the WordPress directory. */

 if ( ! defined( 'ABSPATH' ) ) { 
define( 'ABSPATH', __DIR__ . '/' ); 
} 

/** Sets up WordPress vars and included files. */

 require_once ABSPATH . 'wp-settings.php';

Aquí hay algunas instrucciones, pero la línea «dejar de editar» es importante. Después de esta línea está la continuación de la secuencia de inicialización de WordPress. Agregar un nuevo código en el lugar equivocado probablemente solo dará como resultado que el nuevo código no tenga ningún efecto. Pero para estar seguro, recomiendo seguir estas instrucciones. Están ahí por una buena razón.

Comprobación/Limpieza de su archivo wp-config.php

Si está trabajando en producción, realmente no desea colocar ningún error en el wp-config.phparchivo. Los errores aquí pueden romper su sitio web, y es posible que no obtenga un mensaje de error útil cuando lo haga.

Puede ejecutar phpen la línea de comando con la -lopción («lint») para verificar su wp-config.phparchivo en busca de errores fatales de sintaxis de PHP.

$ php -l wp-config.php

Parse error: syntax error, unexpected token "require_once" in wp-config.php on line 9

Errors parsing wp-config.php

Incluso podrías escribir un script de shell para…

  1. Copiar wp-config.phpa un archivo temporal,
  2. Edite el archivo temporal,
  3. Lint el archivo temporal, y
  4. Cópielo de nuevo solo si no tiene errores de sintaxis.

Si está satisfecho con la línea de comandos, entonces es más seguro usar los comandos WP-CLI wp config set <name> <value>para establecer valores de forma segura en lugar de hacerlo a mano.

También puede enumerar sus valores de configuración con WP-CLI (esta es una muestra con algunas entradas eliminadas, ¡usted entiende la idea!):

$ wp config list
+---------------------+-----------------------------------------------+----------+
| name                | value                                         | type     |
+---------------------+-----------------------------------------------+----------+
| root_dir            | /Users/smithers/sites/snpp                    | variable |
| webroot_dir         | /Users/smithers/sites/snpp/public             | variable |
| table_prefix         | wp_                                           | variable |
| WP_HOME             | https://snpp.test                             | constant |
| WP_SITEURL          | https://snpp.test/                            | constant |
| DB_NAME             | snpp                                          | constant |
| DB_USER             | root                                          | constant |
| DB_PASSWORD         | Montgomery                                    | constant |
| DB_HOST             | 127.0.0.1                                     | constant |
| DB_CHARSET          | utf8mb4                                       | constant |
| DB_COLLATE          |                                               | constant |
| DB_PREFIX           | wp_                                           | constant |
| WP_DEBUG            | 1                                             | constant |
| WP_DEBUG_LOG        | 1                                             | constant |
| WP_DEBUG_DISPLAY    |                                               | constant |
| WP_ENVIRONMENT_TYPE | development                                   | constant |
| DISABLE_WP_CRON     |                                               | constant |
| DISALLOW_FILE_EDIT  | 1                                             | constant |
+---------------------+-----------------------------------------------+----------+

Estas dos técnicas realmente podrían ahorrarle algunas molestias y evitar que se asuste por poner accidentalmente un punto y coma en el lugar equivocado en un archivo tan crítico.

Asegurar WordPress con wp-config.php

La seguridad es un tema permanentemente candente en WordPress. Algunas configuraciones que podemos cambiar en el wp-configarchivo agregan más herramientas a nuestra caja de herramientas de seguridad.

Estas partes del wp-configarchivo definitivamente no son las únicas cosas que debe usar para lograr una buena seguridad de WordPress. Asegúrese de comprender a fondo la seguridad del sitio web además de la información de la siguiente sección.

Proteger wp-config.php de los visitantes del sitio web

Su wp-configarchivo vive en el directorio raíz de su sitio web de forma predeterminada, y simplemente contiene información crítica, como los detalles de inicio de sesión de su base de datos y las contraseñas. No desea que esta información esté disponible públicamente, por lo que debe asegurarse de que su wp-configarchivo esté protegido de los visitantes del sitio web.

Su empresa de hosting a menudo hará esto por usted. Puede comprobarlo intentando acceder al archivo desde su navegador añadiendo /wp-config.phpjusto después de su dominio. Esta URL puede ser diferente si ha movido el archivo.

Si ha colocado el wp-configarchivo en el directorio sobre el directorio raíz de su sitio web, entonces no debería poder verlo. En la mayoría de los demás casos, obtendrá un mensaje de error de PHP cuando intente visitar el archivo de todos modos, por lo que generalmente no hay nada que hacer aquí. Pero si desea protegerlo correctamente, puede hacerlo modificando la configuración de su servidor web (Apache o nginx) para bloquear el acceso a él.

Finalmente, si está almacenando el archivo de su sitio web en Git, es importante no almacenar el wp-configarchivo en su repositorio de Git . Hacerlo podría filtrar información crítica sobre su sitio, pero además probablemente desee una versión diferente de este archivo en cada entorno de todos modos. Por lo tanto, es mejor agregarlo a su .gitignorey administrar manualmente los archivos en cada entorno.

Teclas giratorias/sales

¿Qué son las llaves/sales?

La sección de llaves y sales es una de las partes más misteriosas de wp-config. Este conjunto de constantes de aspecto extraño ayuda con el cifrado de cosas como cookies y nonces. Sin entrar en detalles, como lo ha hecho WP Engine , agregan una capa adicional de aleatoriedad que hace que las cosas sean más difíciles de descifrar si no conoce las sales y las claves.

¿Por qué «rotar» claves/sales?

En primer lugar, «rotar» es solo una palabra elegante para «cambiar». No sé por qué usamos «rotar». ¡No es como si alguna vez volviéramos al mismo juego de llaves!

Probablemente debería cambiar sus claves y sales si el sitio ha sido pirateado, ya que no puede garantizar que las claves y las sales sigan siendo secretas. Pero es posible que desee rotarlos regularmente de todos modos, como con las contraseñas, solo para asegurarse de que nadie sepa cuáles son.

El problema con la rotación de llaves/sales

Cambiar llaves y sales no está exento de dolor. Cualquiera que tenga un conjunto de cookies lo perderá. Por lo tanto, cualquiera que haya iniciado sesión será expulsado, y cualquier persona con un carrito de WooCommerce lo vaciará.

Cómo rotar llaves/sales

Quiero decir, podría editar el wp-configarchivo y simplemente escribir algunos caracteres aleatorios nuevos sobre los anteriores. Pero esto sería tedioso y los humanos no son muy buenos para la aleatoriedad .

Así que déjame contarte algunas formas de establecer nuevas claves/sales en tu archivo wp-config.

  1. Agregue claves manualmente desde un generador: puede usar el generador de wordpress.org para obtener el código que necesita. Simplemente cópielo y péguelo en el wp-configarchivo en lugar de los valores anteriores.
  2. Use un complemento: muchos complementos de seguridad como Sucuri Security, iThemes Security y Malcare tienen esta característica. Y Salt Shaker es un complemento dedicado que automatizará este proceso en un horario para usted.
  3. Utilice WP-CLI. ¿Ya hemos dicho lo increíble que es WP-CLI ? lo hicimos ? ESTÁ BIEN. Bueno, lo estamos diciendo de nuevo! Y puede usar el wp config shuffle-salts comando para hacer este trabajo en segundos.

Mover y ocultar cosas

La gente de seguridad le dirá que la «seguridad por oscuridad» no es seguridad en absoluto , pero a algunas personas todavía les gusta ocultar sus cosas de WordPress para poner barreras adicionales a los piratas informáticos.

El wp-configarchivo le brinda una serie de opciones para hacer esto, y las cubriremos en secciones posteriores sobre cómo mover cosas y desactivar la edición de archivos .

Deshabilitar los editores de archivos

WordPress tiene una función útil que le permite editar archivos en temas y complementos desde el panel de administración. ¡ La edición wp-config.phple permite desactivar estos editores de archivos! A algunas personas les gusta desactivarlos para su tranquilidad.

Ahora sé que existe un argumento de seguridad de que si alguien tiene acceso de administrador a su sitio, que es necesario para usar estos editores, entonces puede cargar un complemento y hacer lo que quiera de todos modos. Tener estos editores habilitados no proporciona a los piratas informáticos más poder del que ya tienen.

Sin embargo, aunque es posible que la seguridad no mejore al desactivarlos, la verdadera razón para hacerlo es evitar que las personas que están realmente autorizadas como administradores los usen. Si es una agencia, probablemente no quiera que sus clientes descubran que pueden editar todos sus archivos de temas, ¿verdad?

Muchos hosts simplemente deshabilitarán esta función de forma predeterminada. Pero si quieres hacerlos desaparecer es tan sencillo como añadir:

define( 'DISALLOW_FILE_EDIT', true );

O si realmente desea bloquear su sistema de archivos, existe DISALLOW_FILE_MODS, que trataremos en la siguiente sección .

Deshabilitar actualizaciones automáticas

Ya sea que las ames o las odies, las actualizaciones automáticas de WordPress han tenido un impacto neto positivo en el ecosistema de WordPress y son difíciles de ignorar. ¡Pero no todos quieren que su software se cuide solo!

Por lo tanto wp-config, le brinda control sobre el proceso de actualizaciones automáticas con un conjunto simple de constantes autoexplicativas que puede configurar:

# Disable all core updates:
define( 'WP_AUTO_UPDATE_CORE', false );

# Enable all core updates, including minor and major:
define( 'WP_AUTO_UPDATE_CORE', true );

# Enable core updates for minor releases (default):
define( 'WP_AUTO_UPDATE_CORE', 'minor' );

Si quieres algo más extremo, puedes DISALLOW_FILE_MODS:

define( 'DISALLOW_FILE_MODS', true );

Pero esto evita que WordPress escriba cualquier cosa en el disco relacionada con el núcleo, los temas, los complementos o las traducciones, y deshabilita las notificaciones por correo electrónico sobre actualizaciones menores. Ha sido descrito por un colaborador principal como «loco estúpido de usar a menos que sepa exactamente lo que está haciendo».

Ligeramente menos extremo es AUTOMATIC_UPDATER_DISABLED. Esto le permite instalar complementos y temas, pero no los actualizará ni el software central. Sin embargo, también deshabilita las actualizaciones de traducción.

define( 'AUTOMATIC_UPDATER_DISABLED', true );

Hay una guía detallada sobre todo esto en wordpress.org , que incluye algunas otras opciones, como el uso de filtros para un control más detallado.

Finalmente, observo que si su sitio está controlado por versiones , entonces es probable que WordPress haya desactivado las actualizaciones de todos modos. Por ejemplo, la presencia de un .gitdirectorio en la raíz del sitio (o varios otros archivos en varios lugares diferentes) deshabilitará las actualizaciones automáticas sin necesidad de agregar nada a wp-config.

Configurando HTTPS

La configuración de HTTPS a menudo solía ser un desafío. Con la llegada de certificados de seguridad confiables y gratuitos de lugares como LetsEncrypt y Cloudflare, muchos hosts configurarán esto para usted con un par de clics. Esta configuración probablemente debería considerarse heredada, pero tal vez aún la necesite para algo.

La FORCE_SSL_ADMINconstante le dice a WordPress que siempre use SSL para las páginas de inicio de sesión y el Panel de WordPress. Esto garantiza que las credenciales seguras y las cookies no se puedan enviar sin cifrar.

Pero, como dije, una buena empresa de alojamiento simplificará la configuración de HTTPS en su sitio de todos modos, así que simplemente hágalo.

Prevención de solicitudes HTTP externas

Finalmente, en seguridad, puede bloquear solicitudes HTTP externas. Esto significa que WordPress no puede ponerse en contacto con otros lugares en Internet para hacer cosas como llamar a la API o descargar actualizaciones.

Permitir que WordPress se comunique con servicios externos a través de HTTP generalmente es una buena idea porque le permite obtener actualizaciones, instalar complementos y temas, y muchos complementos se romperán si desactiva las solicitudes HTTP.

Pero el núcleo de WordPress y muchos complementos y temas envían «telemetría» o «datos de uso» a los servidores centrales. Esto puede ser bueno: ayuda a los desarrolladores de complementos y temas a saber quién está usando su software y cómo. Pero si tiene un sitio que tiene datos particularmente confidenciales, es posible que desee deshabilitar esto. Y puedes hacerlo con:

define( 'WP_HTTP_BLOCK_EXTERNAL', true );

Si desea tener una lista de hosts permitidos a los que se pueda contactar, también puede hacerlo:

define( 'WP_ACCESSIBLE_HOSTS', 'api.wordpress.org,*.github.com' );

Tenga en cuenta que la lista de hosts accesibles es una lista separada por comas y se permiten subdominios comodín. Y puede monitorear qué hosts están siendo contactados usando el complemento Log HTTP Requests .

Mover cosas

No todas las instalaciones de WordPress son iguales. A algunos hosts o marcos les gusta mover directorios por razones de seguridad o para mantener el código y los activos específicos del sitio separados del núcleo de WordPress. Mi artículo sobre el uso de Git y Composer para administrar WordPress cubre algunos beneficios de este enfoque.

Entonces, ¿qué opciones te da WordPress para, a falta de un término mejor, «mover cosas»?

Cambiar el prefijo de la base de datos

WordPress usa el prefijo wp_del nombre de la tabla de la base de datos de forma predeterminada. Este prefijo se agrega a todos los nombres de las tablas de la base de datos y también se usa en otros lugares, por ejemplo, la <prefix>user_rolesopción en la tabla de opciones y las <prefix>capabilitiesmetaentradas del usuario.

Los piratas informáticos o atacantes pueden usar el prefijo predeterminado en un ataque, tratando de descubrir o modificar las tablas de su base de datos. Entonces, algunas personas recomiendan cambiarlo del valor predeterminado.

La wp_configopción $table_prefixle permite hacer esto y probablemente debería configurarlo en una cadena corta pero aleatoria, con un guión bajo como sufijo:

$table_prefix = 'b4F8az_';

Esto le indicará a WordPress que use nombres de tabla como en b4F8az_postslugar de wp_posts.

No debería tener que actualizar ningún código para adaptarse a este cambio (a menos que ese código esté muy mal escrito), pero si está cambiando esto en un sitio existente, tendrá que hacer algunas actualizaciones en su base de datos, y no solo cambiar el nombre. ¡las mesas!

Algunos complementos de seguridad harán esto por usted y hay un complemento que también puede hacerlo. Recomendamos encarecidamente hacer una copia de seguridad de su base de datos antes de hacer esto, y tenga en cuenta que es mejor seleccionar un prefijo de tabla no predeterminado al instalar WordPress, no al cambiarlo mientras su sitio está en vuelo.

Una nota curiosa sobre esto es que $table_prefixes una variable, no una constante. ¡Es la única variable definida en el archivo de configuración de muestra que te da WordPress! Y si todavía tienes curiosidad: ¡sí, los wp configcomandos de WP-CLI se encargan de esto por ti sin que tengas que saberlo!

Mover las tablas User y Usermeta

Nunca he visto que se haga esto, y solo aprendí que se podía hacer al escribir este artículo, pero también puedes cambiar completamente los nombres de las tablas user y usermeta.

Supongo que esto ayuda a prevenir un ataque de inyección de SQL que intenta «SELECCIONAR * DE wp_usermeta;», pero estoy feliz de escuchar otras razones para hacerlo.

En cualquier caso, las constantes CUSTOM_USER_TABLECUSTOM_USER_META_TABLEson lo que necesitas:

define( 'CUSTOM_USER_TABLE', $table_prefix.'my_users' );
define( 'CUSTOM_USER_META_TABLE', $table_prefix.'my_usermeta' );

Hay algunas advertencias que vale la pena conocer antes de usar estas constantes. Consulte los documentos oficiales antes de usar esta función. Y al igual que usar un prefijo de tabla personalizado, esto definitivamente se hace mejor al instalar un nuevo sitio, en lugar de modificarlo más adelante.

Mover directorios de contenido, cargas y complementos

También es posible mover todo el wp-contentdirectorio, el uploadsdirectorio y los directorios themesplugins. Cosas a tener en cuenta:

  • En algunos de estos casos, debe configurar la URL y el directorio.
  • Debe tener cuidado de usar rutas completas o rutas relativas, según corresponda.
  • Ninguna de estas configuraciones debe tener una barra diagonal final.

Consulte la documentación oficial para obtener más detalles; no repetiré todo eso aquí.

Finalmente, tenga en cuenta que un complemento o tema mal codificado puede estropearlo si los cambia. Esto nunca debería suceder, pero vale la pena saberlo.

Si es un desarrollador de complementos o temas, es importante recordar que estas rutas pueden cambiar. Así que asegúrese de no codificar rutas a directorios o URL. Las funciones útiles para usted aquí son:

wp_upload_dir
plugins_url
plugin_dir_url
plugin_dir_path
get_stylesheet_directory
get_stylesheet_directory_uri
get_template_directory– tenga en cuenta que para un tema secundario esto devuelve la ubicación del tema principal
get_template_directory_uri

Hay una lista más exhaustiva de funciones como estas en el manual del desarrollador de WordPress.

Finalmente, además de mover archivos dentro de su instalación de WordPress, también puede mover su ubicación de wp-admin o cambiar la ubicación de su sitio. Y wp-config.php puede ayudar con eso también .

Configuración relacionada con el contenido

WordPress es, después de todo, un sistema de gestión de contenido. Entonces, esperaría algunas de las constantes que puede usar wp-config.phppara controlar las opciones de contenido. Echemos un vistazo y veamos qué podemos hacer.

Cambiar las URL del sitio y del panel

Estos siempre me han confundido.

Para configurar la URL de su sitio, debe usar la WP_HOMEconstante, no la WP_SITEURLconstante.

La WP_SITEURLconstante no cambia la URL de su sitio.

¿Confundido?

La descripción oficial de lo que WP_SITEURLhace es «la dirección donde residen los archivos principales de WordPress». Esto también es confuso porque es una URL, no un directorio.

¡No me culpes por esto, solo soy tu guía turístico por el día!

Establece WP_HOMEWP_SITEURLanula las entradas homey en la tabla de la base de datos. Así que, al menos, tiene sentido.siteurlwp_options

// NOTE: These must not have trailing slashes
define( 'WP_HOME', 'https://helfish.media' );
define( 'WP_SITEURL', 'https://hellfish.media/wordpress` );

Puede usar estas constantes después de mover un sitio a una nueva URL, para poner el sitio en funcionamiento mientras arregla la base de datos correctamente. Incluso puede optar por dejarlos en su lugar después.

La WP_SITEURLconfiguración también se puede usar cuando ha movido sus archivos principales de WordPress a un directorio diferente.

El uso de estos también evita que se ejecuten una o dos consultas de la base de datos para obtener los valores de la tabla de opciones, por lo que puede tener una ganancia de rendimiento marginal. Aunque si está haciendo almacenamiento en caché de objetos, esa ganancia probablemente sea insignificante.

Hay más detalles en los documentos oficiales , e incluso un artículo de soporte completo sobre cómo cambiar la URL del sitio . Además, ese artículo incluye la oscura RELOCATEconstante de wp-config.phpla que nunca había oído hablar antes de investigar este artículo.

Finalmente, cuando mueva sitios, tenga en cuenta que esto no es lo único que tiene que cambiar. Se recomienda una búsqueda y reemplazo de la base de datos completa para las cadenas de URL.

Configuración de publicación

Hay algunas configuraciones diferentes que puede modificar cuando se trata de publicaciones. La mayoría de estos están relacionados con las revisiones posteriores o la función de guardado automático.

Publicar revisiones

El comportamiento predeterminado de WordPress es guardar todas las revisiones realizadas en publicaciones y páginas. La ventaja de esto es que es fácil volver a versiones anteriores. Las desventajas son que todas esas revisiones ocupan espacio en la base de datos y pueden afectar el rendimiento del sitio al ralentizar las consultas a la base de datos.

Es posible deshabilitar completamente las revisiones posteriores modificando el WP_POST_REVISIONSvalor en su wp-config.phparchivo. Por defecto es verdadero. Para desactivar las revisiones, puede establecerlo en falso en su lugar:

define( 'WP_POST_REVISIONS', false );:

Algunos hosts, incluido WP Engine , deshabilitan las revisiones posteriores de forma predeterminada. Recomiendo consultar con su proveedor de alojamiento antes de realizar cualquier cambio. Esto varía de un host a otro, pero si está con WP Engine, no puede habilitar las revisiones a través wp-configde , ya que se sobrescribirá en el nivel del servidor.

Si su host controla esto e intenta cambiarlo, no necesariamente romperá algo, pero podría estar perdiendo el tiempo.

Si le preocupa que las revisiones posteriores ralenticen las consultas de la base de datos, una mejor opción podría ser limitar la cantidad de revisiones que almacena WordPress. Esto está controlado por la WP_POST_REVISIONSconstante, que puede establecer el número máximo de revisiones que desea conservar:

define( 'WP_POST_REVISIONS', 5 );

Cambiar el intervalo de autoguardado

También puede disminuir la frecuencia con la que se activa el autoguardado. Esto por defecto es cada 60 segundos, pero puedes cambiarlo a lo que quieras. Si está paranoico, es posible que desee configurarlo en 20 o 30 segundos.

Es importante tener en cuenta cuánto tarda un autoguardado. No desea que se superpongan haciendo que sucedan con demasiada frecuencia, por lo que no establezca este valor en, por ejemplo, un segundo. No es muy probable que los guardados automáticos tomen más de los 60 segundos predeterminados, pero puede aumentar el intervalo si desea guardar las solicitudes:

define( 'AUTOSAVE_INTERVAL', 120 ); // Seconds

Concluyendo

Hay mucho potencial wp-configque está esperando a ser desbloqueado. Espero que este recorrido haya ayudado a resaltar solo algo de lo que es posible.

Otros Articulos