4 cosas que desconoces del archivo de configuración de WordPress

Para muchos, el archivo de configuración de WordPress es ese gran desconocido. En este artículo exprimiremos todo su potencial con cuatro sencillos trucos.

En el corazón de cada instalación de WordPress está el archivo wp-config.php, un archivo sagrado y envuelto en misterio, que se encarga de la configuración de WordPress, que todo usuario de la plataforma sabe que nunca debe ser tocado. ¿O quizás sí? De hecho, hay un montón de trucos muy poco conocidos por la comunidad que puedes realizar sin dañar tu WordPress, y creo que es hora de que te vuelvas subas un nivel en tu rol como administrador del CMS, ¿verdad?

En este artículo os voy a mostrar 4 cosas que puedes realizar con el archivo de configuración de WordPress, el wp-config.php, y que la mayoría de la gente desconoce.

Antes de empezar, deciros que en este artículo vamos a ver algo de código. Ya sabéis lo potencialmente peligroso que puede ser que implementes mal un código para WordPress, nos podríamos quedar sin sitio web. Así que, antes que nada, realiza una copia de seguridad de tu instalación de WordPress. Si acaso algo va mal, solamente tendremos que restaurar la copia de seguridad que hemos realizado previamente. De todas maneras no te asustes, los cambios que haremos en el código son menores y no creemos que tengas problema alguno, pero por si acaso, es mejor prevenir que curar.

El archivo wp-config.php lo puedes encontrar en el directorio raiz de tu WordPress, y para editarlo, debes conectarte por FTP. Para ello te harán falta las claves FTP y un cliente FTP como, por ejemplo, el genial Filezilla. Si no cuentas con las claves FTP de tu sitio web, consulta con el proveedor de tu alojamiento para WordPress.

Configuración de WordPress

Log de errores en un fichero

A veces mostrar un montón de errores en la parte pública de tu web, no suele ser lo más apropiado. Es mejor que dichos errores se impriman en un fichero, ¿verdad? Pues bien, haciendo lo siguiente, el sistema generará un nuevo fichero error.log en el directorio wp-content/, el cual se irá rellenando con los errores de WordPress. No te olvides de desactivar esta opción cuando termines tus tareas de depuración de errores, o de lo contrario podremos generar un archivo que al cabo del tiempo puede pesar incluso gigas.

define('WP_DEBUG', true); // ponlo a false para deshabilitarlo
if (WP_DEBUG) {
	define('WP_DEBUG_LOG', true);
	define('WP_DEBUG_DISPLAY', false); 
	@ini_set('display_errors',0);
}

Busca las líneas que contengan PHP_ERROR, más que NOTICE o WARNING. Estos dos últimos no harán caer tu web, aunque también es bueno subsanarlos.

Deshabilitar las revisiones de posts

Una vez vi un post con más de 100 revisiones, esto son 100 filas adicionales en la tabla de posts que no son necesarias. Desactiva las revisiones de posts por completo con la siguiente línea de código:

define('WP_POST_REVISIONS', false );

o también:

define('WP_POST_REVISIONS', 3);

Con esto estaremos limitado las revisiones de posts a un número fijo. En el caso del ejemplo, a 3. Claro está, hay muchos usuarios de WordPress a los cuales les gustan las revisiones de posts para volver a pasos previos en la creación de un contenido. Si eres de estos, no es necesario modificar el archivo de configuración de WordPress. Ahora, si decides aplicarlo en tu CMS, decirte que dicho cambio no elimina las revisiones anteriores a la implantación del código. Es decir, las revisiones que tenías antes, las seguirás teniendo, pero ya no se crearán nuevas, o se crearán de manera limitada.

Compartir la tabla de usuarios

Mucha gente cuenta con más de una instalación de WordPress. Pero dar a los usuarios logins separados para cada sitio es algo ridículo, y tener un network multisitio de blogs no ayuda. Para solventar toda esta problemática solamente te harán falta dos líneas de código en el archivo de configuración de WordPress.

Lo que queremos es tener una tabla de usuarios compartida, a la vez que cada blog siga teniendo una entidad propia con sus plugins y posts por separado. Es decir, lo único que queremos es compartir la tabla de usuarios de WordPress. Para ello, en primer lugar debes decidir tu sitio principal, aquel en el que se va a realizar la gestión de usuarios, que de ahora en adelante lo vamos a llamar como Sitio A. Después, en los archivos wp-config.php de Sitio B y Sitio C, agrega las siguientes líneas. En este ejemplo, el sitio principal utiliza un prefijo de base de datos llamado “sitioA”.

define('CUSTOM_USER_TABLE', 'sitioA_users');
define('CUSTOM_USER_META_TABLE', 'sitioA_usermeta');

También es necesario asegurarse de que los dominios de las cookies sean los mismos, ya que si no realizamos este cambio, los usuarios seguirán logueandose en cada sitio por separado (aunque con la misma contraseña y accesos, que ahora están compartidos).

define('ADMIN_COOKIE_PATH', '/');
define('COOKIEPATH', '/');
define('SITECOOKIEPATH', '/');
define('COOKIEHASH', md5('CAMBIAESTO'));

Asegúrate de reemplazar CAMBIAESTO por una cadena de caracteres generada de manera aleatoria (hay servicios online como password.es para ello) para asegurar las cookies de WordPress. Finalmente, deberás ver unas líneas similares al pantallazo de más abajo, definidas con unos valores aleatorios con nombres similares a “salt” y “key”. Ten seguro que sean las mismas en cada archivo de configuración.

Configuración de WordPress

Por suerte ninguno de los cambios que hemos realizado en el archivo de configuración de WordPress no se perderán en la actualización, pero por desgracia hay uno que sí. En el archivo wp-includes/capabilities.php debemos realizar un pequeño cambio que sí se perderá a la hora de actualizar.

La función init_caps() es donde se definen los accesos de cada usuario, si no cambias este fichero, el usuario se logueará, pero no podrá hacer nada de nada. Encuentra el siguiente código:

function _init_caps( $cap_key = '' ) {
	global $wpdb;

	if ( empty($cap_key) )
		$this->cap_key = $wpdb->get_blog_prefix() . 'capabilities';
	else
		$this->cap_key = $cap_key;

	$this->caps = get_user_meta( $this->ID, $this->cap_key, true );

	if ( ! is_array( $this->caps ) )
		$this->caps = array();

	$this->get_role_caps();
}

Y cambia el:

$this->cap_key = $wpdb->get_blog_prefix() . 'capabilities';

Por el del prefijo de tu blog, tal que así:

$this->cap_key = 'sitioA_capabilities';

Recuerda, con cada actualización, tendrás que volver a realizar este último cambio.

Arreglar la URL del sitio

Si te has hecho un lío con la configuración de URLs, puede pasar que te bloquees a tu mismo y te mandes fuera de la administración, entrando en un bucle que no tiene salida. Podrías arreglar yendo a Ajustes, pero no puedes entrar a la administración por la configuración está mal.

Por suerte, puedes anular cualquier opción de la base de datos donde se almacene la URL, solo añade las siguientes líneas en tu archivo de configuración de WordPress:

define( 'WP_SITEURL', 'http://example.com/' );
define( 'WP_HOME', 'http://example.com/' );

Espero que te haya gustado este artículo y sepas aplicarlo en tu propio WordPress. Este artículo está basado en el original de makeuseof.com. ¿Tu sabías que tenía tanto potencial el archivo de configuración de WordPress?

1 Comentario

  1. Necesito compartir los usuarios entre 2 WP. No me ha resultado, podrías orientarme?
    1.- Después de que linea va el código:
    define(‘CUSTOM_USER_TABLE’, ‘sitioA_users’);
    define(‘CUSTOM_USER_META_TABLE’, ‘sitioA_usermeta’);
    2.- Al momento de configurar, ambos WP deben tener el mismo tema?
    3.- Que administrador quedará en el segundo blog?
    4.- Debe ser la misma versión de WP en ambos sitios?
    Gracias

Dejar respuesta

Please enter your comment!
Please enter your name here