Soporte » Plugins y Hacks » Evitar modificación automática del archivo wp_login.php

  • Resuelto franciscorobles

    (@franciscorobles)


    Hola buenos días.
    Veréis, tengo una página web personalizada para una empresa. Creo tener configurada la web para no actualizar wordpress de forma automática y además la mayoría de su contenido está en una carpeta «child» del theme para, precisamente, evitar estas modificaciones sin mi control. Sin embargo, también tuve la necesidad de modificar el archivo wp_login.php tanto para cambiar algunos aspectos de su diseño como para añadir nueva funcionalidad cuando un usuario se registra.
    Pues bien, cada cierto tiempo, de alguna manera wordpress me pisa ese fichero y me lo deja con su archivo original por defecto. ¿Hay alguna manera de proteger ese fichero para que se mantenga inalterable?

    Gracias.

Viendo 5 respuestas - de la 1 a la 5 (de un total de 5)
  • Moderador LGrusin

    (@lgrusin)

    La solución pasa por no modificar el archivo wp-login.php, no es la forma correcta de hacerlo precisamente para evitar esto.

    Se puede hacer exactamente lo mismo añadiendo el código al archivo functions.php del tema, o mejor, crear un plugin de funciones.

    Un saludo

    Te dejo el código que yo utilizo, añade una hoja de estilo a la página de login, cambia el logo, y la url a la que enlaza el logo. Tendrás que modificarlo según lo que necesites pero no tiene mucho misterio y está todo comentado:

    https://gist.github.com/nilovelez/76afe320c6289baad91741afd4b8fd96

    Para usarlo puedes copiar el código en el functions.php de tu tema hijo o directamente subir el fichero al directorio /wp-content/mu-plugins/ de tu web.

    Los plugins que se suben a mu-plugins (Must-use plugins), no se pueden desactivar ni borrar desde el escritorio de WordPress.

    Iniciador del debate franciscorobles

    (@franciscorobles)

    Muchas gracias por las respuestas.

    El caso es que las modificaciones que tengo en el fichero wp_login son bastante más que simplemente diseño de css. Tengo una traducción personalizada en 3 idiomas de las frases que aparecen en el formulario accediendo a la base de datos para ésto y además varias funcionalidades que se activan al registrarse un nuevo usuario o loguearse.

    ¿Todo esto se puede controlar a base de hooks?

    Aunque modificar el fichero wp_login.php no sea lo mejor, ¿hay alguna forma de evitar su modificación automática?

    Gracias.

    Perdona, no te había entendido.

    No, el fichero wp_login.php no se puede «bloquear», al ser un fichero del core siempre se va a pisar cuando actualices WordPress.
    Lo que sí que puedes hacer es construir tu propia página de login, y hacer una redirección desde /wp-login.php

    Te dejo dos tutoriales para que tengas por donde empezar.

    Este es bastante completo:
    https://themetrust.com/build-custom-wordpress-login-page/

    Y este trata algunos detalles que te pueden interesar, como personalizar los mensajes de error:
    https://www.hongkiat.com/blog/wordpress-custom-loginpage/

    Iniciador del debate franciscorobles

    (@franciscorobles)

    Gracias por las respuestas.
    He arreglado las funcionalidades específicas a base de «hooks» y estoy en proceso de configurar el diseño personalizado para arreglar lo máximo posible, aunque dudo que lo de la traducción tenga solución fácil al haberla desarrollado de forma manual sin usar plugins de wordpress.

    Igualmente cerraré el hilo porque se me resolvieron las dudas.
    Gracias de nuevo.

Viendo 5 respuestas - de la 1 a la 5 (de un total de 5)
  • El debate ‘Evitar modificación automática del archivo wp_login.php’ está cerrado a nuevas respuestas.