Mostrar contenido solo a usuarios registrados en WordPress

En ocasiones puede sernos de utilidad mostrar contenido solo a usuarios registrados en nuestro sitio WordPress. Para ello podemos programar un simple shortcode que incluiremos en el archivo functions.php de nuestro tema.

En este caso utilizaremos la función is_user_logged in() que comprueba si el visitante de nuestra página está logueado devolviendo true o false.

<?php
add_shortcode('solo_usuarios_registrados', 'galusso_solo_usuarios_registrados');
function galusso_solo_usuarios_registrados($atts, $content = null){
	
    if (is_user_logged_in()){
        return $content;
    }else{
        return "Contenido solo disponible para usuarios registrados";
    }

}
?>

Luego, en la entrada, página o widget de texto (ver Ejecutar shortcodes en widgets de texto) en donde tengamos contenido que solo queramos que lo vean usuarios registrados pondremos:

[solo_usuarios_registrados]
// Contenido que solo verán los usuarios logueados
[/solo_usuarios_registrados]

Espero que os sea de utilidad.

4 comments on “Mostrar contenido solo a usuarios registrados en WordPress

  1. Jorge Rivera

    PD: La Función la deje de esta manera…
    por si a alguien le sirve de ayuda para mostrar abajo que se registre el visitante.

    add_shortcode(‘solo_usuarios_registrados’, ‘vozpiedraangular_solo_usuarios_registrados’);
    function vozpiedraangular_solo_usuarios_registrados($atts, $content = null){
    $registro_forzado = “http://vozpiedraangular.org/es/wp-login.php?action=register”;

    if (is_user_logged_in()){
    return $content;
    }else{
    return “Contenido solo disponible para usuarios registrados”;

    }

    }

    Puse registro forzado porque fue lo mejor que se me ocurrió. jaja

    Reply
  2. Juan Bejar

    Cuando en el contenido del shortcode generado se encuentra otro shortcode, no funciona el que está anidado.
    Es decir si lo que retorna la fnción es un shortcode [sc-ejemplo] este se muestra como texto y no realiza la función adecuada.

    Reply

Leave a Reply

Your email address will not be published. Required fields are marked *