✅ Crear un SHORTCODE que oculte contenido a NO REGISTRADOS (Sin plugins)

¿Alguna vez has querido mostrar un contenido exclusivo solo para los usuarios registrados en tu sitio de WordPress? Si es así, entonces necesitas un shortcode para ocultar ese contenido a los no registrados.

No te preocupes, no necesitas ser un desarrollador de WordPress para hacerlo. En este artículo, te mostraré cómo crear un shortcode en WordPress que oculta el contenido a los usuarios que no han iniciado sesión.

Primero, debes abrir el archivo functions.php de tu tema activo en el Editor de WordPress o mediante un editor de código externo. También puedes usar un plugin gratuito como CODE SNIPPETS que lo que hace es agregar un nuevo CPT a tu WordPress con todos los códigos que vayas agregando y así los tendrás todos bien organizados. Después, añade el siguiente código al final del archivo functions.php:

// Función para ocultar contenido a los usuarios que no hayan iniciado sesión
function ocultar_contenido($atts, $content = null) {
    if (!is_user_logged_in()) {
        $content = '<p>Debes iniciar sesión para ver este contenido.</p>';
    }
    return $content;
}

// Registra el shortcode
add_shortcode('ocultar', 'ocultar_contenido');
Lenguaje del código: PHP (php)

Este código es bastante sencillo. La función ocultar_contenido comprueba si el usuario ha iniciado sesión o no. Si el usuario no ha iniciado sesión, el contenido se sustituye por un mensaje que indica que deben iniciar sesión para ver el contenido. Después, el shortcode ocultar se registra usando la función add_shortcode.

Ahora, puedes usar el shortcode [ocultar] [/ocultar] en cualquier publicación o página de tu sitio para ocultar el contenido a los usuarios que no hayan iniciado sesión.

Todo lo que pongas entre el shortcode estará oculto para los usuarios no registrados y en su lugar aparecerá un mensaje para iniciar sesión.

Pero, ¿qué pasa si quieres personalizar el mensaje de inicio de sesión y hacer que el enlace de inicio de sesión redireccione al usuario a la misma página donde estaba antes de iniciar sesión? No te preocupes, ¡también puedes hacerlo!

Modifica la función ocultar_contenido del siguiente modo:

// Función para ocultar contenido a los usuarios que no hayan iniciado sesión
function ocultar_contenido($atts, $content = null) {
    if (!is_user_logged_in()) {
        // Obtener la URL actual
        $actual_url = get_permalink();

        // Crear el mensaje con el enlace de inicio de sesión
        $content = '<p>Debes <a href="' . wp_login_url($actual_url) . '">iniciar sesión</a> para ver este contenido.</p>';
    }
    return $content;
}
Lenguaje del código: PHP (php)

Este código hace lo mismo que el anterior, pero además, obtiene la URL actual y crea un mensaje de inicio de sesión con un enlace que redirecciona al usuario a la página de inicio de sesión de WordPress y después redirige al usuario de nuevo a la misma página donde estaba antes de iniciar sesión.

¡Y eso es todo! Ahora, tienes un shortcode personalizado que oculta el contenido a los usuarios que no han iniciado sesión en tu sitio de WordPress. Con este shortcode, podrás mostrar contenido exclusivo solo a los usuarios registrados en tu sitio y mantener el control sobre quién puede acceder a ese contenido. ¡Espero que te haya resultado útil!

En el siguiente vídeo vamos a ver como utilizar los códigos anteriores y veremos el resultado utilizando el shortcode al ocultar un párrafo a los usuarios que no hayan iniciado sesión.

Nos vemos en el siguiente tutorial.

Un saludo.

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

Un comentario

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

    Deja tus opiniones o dudas en los comentarios.

¿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%