Cómo personalizar página login WordPress sin instalar complemento

¿Por qué uno podría necesitar personalizar página login WordPress? Pues, todos sabemos que el administrador suele acceder al panel de control en "/wp-admin/", y que todos los temas y complementos se almacenan en la carpeta "wp-content". En la mayoría de los casos esto no es ningún problema, porque dichas ubicaciones sensibles solo están accesibles para los usuarios con permisos adecuados. ¿Hay alguna excepción? Sí, es la página de inicio de sesión! En este tutorial, te mostraremos cómo personalizar página login WordPress, u ocultarla sin usar ningún complemento.


¿Por qué ocultar la página de inicio de sesión?

A medida que tu sitio web se vuelve popular, los robots de spam y piratas informáticos comenzarán a atacarlo. Y lo primero que van a atacar es la página de inicio de sesión.

Ahora, puede ser que pienses "No me importa. Tengo un nombre de usuario y una contraseña que son lo suficientemente seguros." ¡Y eso es genial! El problema es que incluso si los atacantes no pueden adivinar la correcta combinación de contraseña y nombre de usuario, sus intentos todavía sobrecargan el servidor. Aquí está la página de inicio de sesión predeterminada para todos los sitios web de WordPress:

Al simplemente acceder a wp-login.php, los atacantes hacen que tu sitio web ejecute scripts y genere código HTML. Lo peor es que, si comienzan a adivinar la contraseña correcta, tu base de datos será afectada varias veces en unos pocos segundos. Y sí, la mayoría de nosotros tenemos complementos de bloqueo que limitan acceso al sitio por las IPs que intentan acceder al backend con demasiada frecuencia. Pero esto no te protegerá de un ataque distribuido.

Como resultado, tu sitio web aún puede sufrir de ralentizaciones causadas por una gran cantidad de solicitudes que llegan. Idealmente, sería mejor tener una solución que permita evitar todos estos ataques regulares con la menor molestia posible.

Así que, cambiar la URL de la página de inicio de sesión es una inversión que se merece y se aprovecha al máximo. Veamos cómo hacerlo.


RESULTADO FINAL

En este tutorial, cambiaremos el enlace de tu página de inicio de sesión de:

example.com/wp-login.php

a

example.com/wp-login.php?newlogin

El parámetro "newlogin" puede ser cualquier cosa que elijas. Solo tú lo sabrás. Todos los demás que visitan tu sitio web sin este parámetro especial se redirigirán a una página inexistente.


PASO 1: ACCEDE A FUNCTIONS.PHP DE TU TEMA

Este método no requiere que instales ningún complemento. En cambio, vamos a añadir algo de código al archivo functions.php de tu tema. Éste es un archivo especial único del tema en el que podemos insertar un código PHP personalizado que se ejecute cada vez que se carga tu sitio.

En el panel de administración de WordPress, haz clic en Apariencia -> Editor como se muestra en la siguiente captura de pantalla:

Si lo haces por primera vez, es probable que aparezca una advertencia sobre la edición de archivos del tema. Haz clic en "Entiendo" y sigue.

Esto te llevará a la página con todos los archivos de tu tema. Tu tema actual ya estará seleccionado en el cuadro desplegable como se muestra en la siguiente captura de pantalla:

En la lista de archivos, selecciona "Funciones del tema (functions.php)". Esto abrirá el archivo functions.php en un editor de texto a la izquierda de tu pantalla.


PASO 2: EDITA CON CUIDADO EL ARCHIVO FUNCTIONS.PHP

Advertencia: El archivo functions.php está vinculado a tu tema. Por lo tanto, si algo sale mal, tu tema podría fallar. Para evitar esto, te recomendamos que hagas uno de los siguientes:

  1. Accede a functions.php desde tu backend de panel de control en lugar de hacerlo desde WordPress. De esta manera, si tu sitio falla, podrás eliminar fácilmente el código que acabas de agregar.
  2. Utiliza un complemento separado para el código PHP personalizado. De esta manera, si algo sale mal, solo se desactivará el complemento y tu tema / sitio continuará funcionando. Otra advertencia. Cuando el archivo functions.php está abierto en un editor de texto, desplázate hacia abajo y verifica si hay este símbolo en su parte inferior:
?>

Si lo ves, bórralo. Ya no es necesario según los estándares modernos de codificación de WordPress e incluso puede bloquear tu sitio, si está presente.

Sigue estos consejos para sentirte seguro al modificar funciones.php


PASO 3: AÑADE CÓDIGO A FUNCTIONS.PHP

Abre functions.php en el editor y pega lo siguiente en su código:

function redirect_to_nonexistent_page(){

     $new_login=  'newlogin';
    if(strpos($_SERVER['REQUEST_URI'], $new_login) === false){
                wp_safe_redirect( home_url( 'NonExistentPage' ), 302 );
      exit(); 
    }
 }
add_action( 'login_head', 'redirect_to_nonexistent_page');

function redirect_to_actual_login(){
 
  $new_login =  'newlogin';
  if(parse_url($_SERVER['REQUEST_URI'],PHP_URL_QUERY) == $new_login&& ($_GET['redirect'] !== false)){     
                 wp_safe_redirect(home_url("wp-login.php?$new_login&redirect=false"));
     exit();
 
  }
}
add_action( 'init', 'redirect_to_actual_login');

Hay dos elementos en negrita en el código mostrado anteriormente. Éste es el slug personalizado que eliges para acceder a tu página de inicio de sesión. Reemplázalo con algo de tu elección. Algo que no es fácil de adivinar.

Así es como se ve con el código añadido:

Una vez insertado y modificado, haz clic en el botón azul "Actualizar archivo".


PASO 4: ACCEDE A TU PÁGINA DE INICIO DE SESIÓN

Si todo está hecho correctamente, ya no podrás acceder a tu página de inicio de sesión en wp-login.php. Si lo intentas, se te redirigirá a una página inexistente. En su lugar, accede a tu página de inicio de sesión de otra manera:

example.com/wp-login.php?newlogin

Reemplaza newlogin con el slug que añadiste al archivo en el Paso 3. Ahora tu página de inicio de sesión se abrirá:

¡Y eso es! ¡Has logrado personalizar página login WordPress y hacer que los piratas informáticos ya no puedan acceder a ella!

Otro método que es aún más fácil es hacer los cambios en tu archivo .htaccess para que los visitantes sean redirigidos desde allí. Pero .htaccess no es realmente "fácil", cuando se trata de codificar estructuras lógicas complejas en URL, por lo que preferimos usar una solución basada en WordPress.



Diane Parks

Diane trabja como una redactora del blog MonsterPost España desde hace muchos años. No imagina su vida sin escribir, aprender algo nuevo cada día, desarollarse personalmente y profesionalmente, y compartir sus conocimientos y experiencia con los lectores del blog. ¡Síguela en Facebook!