Cambiar wp-admin en wordpress

Home » Blog » Cambiar wp-admin en wordpress

La gran virtud de WordPress es a su vez su gran defecto, siempre y cuando no se tomen las medidas adecuadas. Pienso que en la gran mayoría de webs, no es necesario cambiar la URL del administrador, con tener todo actualizado y tener un pequeño control de ataques, y sobretodo con un sistema de backUps, es más que suficiente. Pero procuro cambiar el acceso a wp-admin por que apenas cuesta 30 líneas de código fuente.

Redirigir WP-admin a nuestra URL

function seguridad_admin() {
 $clave = '?MICLAVE';
 $url_pral = 'http://'.$_SERVER['HTTP_HOST'].'/'.'wp-login.php'.'?'.$_SERVER['QUERY_STRING'];
 $mi_hosts = array( 'imacreste.com' );

 if ( ! isset( $_SERVER['HTTP_HOST']) || ! in_array( $_SERVER['HTTP_HOST'], $mi_host ) ) {
  header( $_SERVER['SERVER_PROTOCOL'] . ' Error 404' );
  exit;
 }

 if ( site_url('/wp-login.php'.$clave) == $url_pral ) {
 }else{
  header( 'Location: http://' . $_SERVER['HTTP_HOST'] . '/' );
 }
}
add_action('login_head', 'seguridad_admin');

Con este código conseguimos que si alguien prueba las URLs de acceso al administrador clásicas de WordPress, sea redirigido a la home.  En este ejemplo tendríamos que poner: imacreste.com/wp-login.php?MICLAVE, para acceder al administrador.

El problema es que con este código dejan de funcionar el recordar contraseña, y el posterior envió de la misma.

Podemos solucionarlo con el siguiente código:

function contra_perdida( $lostpassword_url, $redirect = "lostpassword" ) {
 return home_url().'/wp-login.php?MICLAVE&action=' . $redirect;
}
add_filter( 'lostpassword_url', 'contra_perdida' );

function redirigir_despues_recordar() {
 if ($_SERVER['REQUEST_URI']=='/wp-login.php?checkemail=registered'){
  $redirect_url = get_bloginfo('url') . '/registro';
  wp_redirect( home_url().'/wp-login.php?MICLAVE&checkemail=registered' );
  exit;
 }
}
add_action('login_head','redirigir_despues_recordar');

De esta forma las URLs coincidirán con tu nueva clave, solo falta añadir unas reglas para que estas 2 URLs no te envíen a la home, en la función: seguridad_admin:

if ( site_url('/wp-login.php?'.$clave.'&checkemail=confirm' ) == $url_pral ) { 
 return home_url().'/wp-login.php?checkemail=confirm'; 
}if( 
 site_url('/wp-login.php?'.$clave.'&action=lostpassword' ) == $url_pral ) { return home_url().'/wp-login.php?action=lostpassword'; 
}

Y ya estaría, tendríamos el mismo panel de acceso pero detrás de una URL exclusiva, merece la pena, creo que si… ah quedaría resolver el botón de acceder en la página de recordar contraseña,  personalmente lo quito con CSS, pero seguro que se podría editar su URL, pero eso ya depende de ti.

Código completo a poner en functions.php

function seguridad_admin() {
$clave = '?MICLAVE';
$url_pral = 'http://'.$_SERVER['HTTP_HOST'].'/'.'wp-login.php'.'?'.$_SERVER['QUERY_STRING'];
$mi_hosts = array( 'imacreste.com' );

if ( ! isset( $_SERVER['HTTP_HOST']) || ! in_array( $_SERVER['HTTP_HOST'], $mi_host ) ) {
header( $_SERVER['SERVER_PROTOCOL'] . ' Error 404' );
exit;
}

if ( site_url('/wp-login.php?'.$clave.'&checkemail=confirm' ) == $url_pral ) { 
return home_url().'/wp-login.php?checkemail=confirm'; 
}if( 
site_url('/wp-login.php?'.$clave.'&action=lostpassword' ) == $url_pral ) { return home_url().'/wp-login.php?action=lostpassword'; 
}

if ( site_url('/wp-login.php'.$clave) == $url_pral ) {
}else{
header( 'Location: http://' . $_SERVER['HTTP_HOST'] . '/' );
}
}
add_action('login_head', 'seguridad_admin');

function contra_perdida( $lostpassword_url, $redirect = "lostpassword" ) {
return home_url().'/wp-login.php?MICLAVE&action=' . $redirect;
}
add_filter( 'lostpassword_url', 'contra_perdida' );

function redirigir_despues_recordar() {
if ($_SERVER['REQUEST_URI']=='/wp-login.php?checkemail=registered'){
$redirect_url = get_bloginfo('url') . '/registro';
wp_redirect( home_url().'/wp-login.php?MICLAVE&checkemail=registered' );
exit;
}
}
add_action('login_head','redirigir_despues_recordar');
Foto de Iñigo Mezo Alvarez

IÑIGO MEZO ALVAREZ (IMAcreste)


Comentarios

Deja una respuesta

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

Las reseñas son opiniones que las personas dejan en la página local de Google. Si son positivas, estas reseñas ayudarán a mejorar la confianza y credibilidad de una marca.

Participa en nuestro sorteo enviando un email con tu nombre y el asunto «Sorteo AUDITORÍA SEO». Se realizara un sorteo cada mes.

Evaluación EXCELENTE
A base de 7 reseñas

Contactamos con Iñigo para el diseño web de nuestra tienda online y estamos encantados. Su asesoramiento, seguimiento y trato han sido excepcionales. Un verdadero crack. Recomendado al 100%. No dudes en ponerte en contacto con el.

erlantz rique
erlantz rique
19/02/2024

Un acierto quien elija a Iñigo. Autentico profesional, se preocupó en todo momento que entendiera el funcionamiento de la web. Me explicó todo las veces necesarias hasta entenderlo. Se preocupó y acertó en que la web tuviera lo que le pedí y lo hizo con creces. Muy contento con el servicio prestado. Una vez realizado el trabajo, cualquier duda que tengo me sigue ayudando. Lo recomiendo sin temor a equivocarme.

Jose Marlasca
Jose Marlasca
06/02/2024

Dió en la clave y nos dió los instrumentos que necesitábamos en esos momentos, y sobre todo entendió a la perfección lo que buscábamos. Lo mejor de web que hemos tenido en 24 años. Eskerrik asko Mezo!!

Troka Abentura
Troka Abentura
07/01/2024

Compromiso, implicación e innovación en los proyectos. Atento a las necesidades e incansable en la búsqueda de soluciones. Muy buena opción.

Jabier Fuertes Udaondo
Jabier Fuertes Udaondo
07/01/2024

Si buscas a alguien que además de hacer un diseño web moderno, responsivo y adaptado a tu sector, te explique por qué plantea el diseño web de esa manera y que te explique y ayude en posicionar tu web lo mejor posible en base a los objetivos fijados, ese es Iñigo Mezo y os lo recomiendo al 100%

Asier Hermoso
Asier Hermoso
03/01/2024

Genial trabajar con él! Además de ser muy buen profesional, experto y responsable, a destacar tanto su implicación en cada proyecto, así como su trato siempre cercano y su paciencia infinita 😉
Un crack!!

itxaso zubia
itxaso zubia
15/12/2023

El plugin gratuito para integrar productos de Prestashop en Wordpress muy sencillo de utilizar y muy bien documentado, os felicito.

Fernando Cózar
Fernando Cózar
02/11/2023