✅Web Privada con Contraseña en WordPress (Sin Plugins)

¿Alguna vez has necesitado restringir el acceso tu sitio web WordPress solo a visitantes autorizados? Ya sea para contenido sensible, en desarrollo o simplemente para una comunicación privada, proteger tu sitio con una contraseña puede ser una solución efectiva. En este artículo, te guiaré a través de cómo implementar una protección por contraseña en tu sitio WordPress para que solo los administradores puedan acceder sin restricciones.

Protección por Contraseña en WordPress

La protección por contraseña en WordPress permite restringir el acceso a tu sitio web mediante una contraseña, asegurando que solo los usuarios autorizados puedan ver el contenido protegido. Este método es útil cuando deseas mantener cierta información privada o exclusiva para un grupo selecto de personas.

Implementación del Código

El siguiente código tienes que agregarlo en el functions.php de tu tema hijo o utilizar un plugin como CODE SNIPPETS.

<?php

// Función para verificar si se debe mostrar la página de contraseña
function my_custom_password_protect() {
    // Verificar si el usuario actual es un administrador
    if ( current_user_can( 'administrator' ) ) {
        return; // Si es administrador, no se aplica la protección por contraseña
    }

    // Si el usuario no ha ingresado la contraseña
    if ( ! isset( $_COOKIE['wpse_logged'] ) || $_COOKIE['wpse_logged'] !== 'yes' ) {
        // Si se ha enviado un formulario de contraseña
        if ( isset( $_POST['site_password'] ) ) {
            // Verificar la contraseña (puedes cambiar 'mypassword' por la contraseña que desees)
            if ( $_POST['site_password'] === 'mypassword' ) {
                // Establecer una cookie para recordar que el usuario ha ingresado la contraseña
                setcookie( 'wpse_logged', 'yes', time() + 3600, '/' ); // La cookie expirará en 1 hora
            } else {
                // Contraseña incorrecta, mostrar mensaje de error
                echo '<p style="text-align:center; color:red;">Contraseña incorrecta. Por favor, intenta de nuevo.</p>';
                // Mostrar el formulario de contraseña
                show_password_form();
                exit;
            }
        } else {
            // Si no se ha enviado un formulario de contraseña, mostrar el formulario
            show_password_form();
            exit;
        }
    }
}

// Función para mostrar el formulario de contraseña
function show_password_form() {
    ?>
    <div class="password-form-container" style="display:flex; justify-content:center; align-items:center; height:100vh;">
        <form method="post" style="max-width:400px; width:100%; padding:20px; background-color:#f9f9f9; border:1px solid #ddd; border-radius:5px;">
            <h2 style="text-align:center;">Protegido por Contraseña</h2>
            <p style="margin-bottom:20px; text-align:center;">Este sitio está protegido por contraseña. Por favor, ingresa la contraseña para acceder:</p>
            <input type="password" name="site_password" style="width:100%; padding:10px; margin-bottom:10px; border:1px solid #ddd; border-radius:5px;">
            <input type="submit" value="Enviar" style="width:100%; padding:10px; background-color:#2271B1; color:#fff; border:none; border-radius:5px; cursor:pointer;">
        </form>
    </div>
    <?php
}

// Agregar el gancho para ejecutar la función de protección de contraseña
add_action( 'template_redirect', 'my_custom_password_protect' );
Lenguaje del código: HTML, XML (xml)

Explicación del Código

  • La función my_custom_password_protect() se encarga de verificar si se debe mostrar la página protegida por contraseña. Primero, comprueba si el usuario actual es un administrador. Si lo es, se omite la protección por contraseña. Luego, verifica si el usuario ha ingresado la contraseña. Si no la ha ingresado, muestra el formulario de contraseña. Si se envió un formulario de contraseña, verifica la contraseña ingresada. Si es correcta, establece una cookie para recordar que el usuario ha ingresado la contraseña. Si es incorrecta, muestra un mensaje de error y vuelve a mostrar el formulario de contraseña.
  • La función show_password_form() muestra el formulario de contraseña en caso de que se requiera.
  • Por último, se añade un gancho (add_action()) para ejecutar la función de protección de contraseña en el momento adecuado durante el proceso de carga de la página.

Conclusión

Implementar la protección por contraseña en tu sitio WordPress es una forma efectiva de restringir el acceso a contenido sensible o privado. Utilizando el código proporcionado, puedes garantizar que solo los usuarios autorizados puedan acceder al contenido protegido, proporcionando así una capa adicional de seguridad y privacidad a tu sitio web.

Nos vemos en el siguiente tutorial.

Un saludo

5/5 - (7 votos)
Compartir Artículo

3 comentarios

  1. Fran Salas Master WP 2 años atrás

    Deja tus opiniones o dudas en los comentarios.

    • Usuario Anónimo No Premium Junior WP 1 año atrás

      # Lo bueno sería que cada persona tuviese un código de acceso, porque si no, el código único se iría propagando y todo el mundo podría acceder.
      Gracias.

      • Fran Salas Master WP 1 año atrás

        Hola, para hacerlo asi ya tienes que solicitar el email de cada visitante y enviarle un codigo unico que caduque. Lo estudiaré para crear un plugin. Saludos.

¿Tienes una duda o sugerencia sobre este artículo?

Puedes dejar un comentario de forma anónima, sin necesidad de registrarte ni proporcionar ningún dato personal. Tu mensaje se publicará como “Usuario Anónimo No Premium”, un perfil que agrupa a todos los visitantes no registrados.

Importante: para evitar el spam automático, todos los comentarios anónimos deben comenzar con el símbolo #. Ejemplo: # Tengo una duda sobre los shortcodes personalizados...

Este espacio está destinado exclusivamente a preguntas concretas, dudas o sugerencias relacionadas con el contenido del artículo. Por respeto a los demás lectores, no se publicarán temas sin relación.

Privacidad y normas:
  • No tienes que agregar tu nombre, correo ni ningún otro dato identificativo.
  • No se permiten enlaces en comentarios anónimos.
  • No se permiten símbolos especiales como < o > (menor y mayor que), ya que se consideran intentos de insertar código y serán bloqueados.
  • Todos los comentarios anónimos pasan por revisión antes de ser publicados y solo se aprobarán si aportan valor al contenido del artículo.
¿Quieres comentar con tu nombre y que tu mensaje se publique al instante? Inicia sesión o regístrate.

Deja un comentario

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

0%