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




Deja tus opiniones o dudas en los comentarios.