Suporte » Desenvolvendo com WordPress » Mostrar dados do usuário no front end

  • Resolvido diegoweb

    (@diegoweb)


    Boas a todos.
    mais uma vez, recorrendo a ajuda dos amigos do wordpress (que por sinal, são muito prestativos, obrigado a todos de verdade).

    Agora, a minha dificuldade é em relação a mostrar os dados de um usuário no site, sem precisar entrar no admin.

    Em uma determinada área do site (sidebar), quero mostrar um campo adicional preenchido pelo admin.

    Alguém poderia me ajudar?
    Desde já, obrigado.

Visualizando 6 respostas - 1 até 6 (de um total de 6)
  • Veja se está página lhe ajuda, as informações estão sendo dadas para página autor, mas as funcionalidades com algumas modificações podem ser usadas em qualquer lugar

    http://codex.wordpress.org/Author_Templates

    Criador do tópico diegoweb

    (@diegoweb)

    Oi Myst1010. Mais uma vez, valeu pela pronta atenção.

    Seguinte, realmente o post ajudou muito. Mas falta alguma coisa (talvez esteja bem na minha cara, mas ainda não consegui ver..rs)

    A listagem está certinha na sidebar. Mas ela mostra todos os autores do site. Preciso mostrar somente o usuário que estiver logado.

    Por enquanto está assim:
    Sidebar

    <?php
    $curauth = (isset($_GET['author_name'])) ? get_user_by('slug', $author_name) : get_userdata(intval($author));
    ?>
    
       <h2>List of authors:</h2>
    <ul>
    <?php wp_list_authors('hide_empty=0'); ?>
    </ul>

    Assim, mostra todos os autores com link para sua página.
    No arquivo author.php, está assim:

    <?php
    $curauth = (isset($_GET['author_name'])) ? get_user_by('slug', $author_name) : get_userdata(intval($author));
    ?>
    
    <h2>About: <?php echo $curauth->nickname; ?></h2>
    <dl>
            <dt>Website</dt>
            <dd><a href="<?php echo $curauth->user_url; ?>"><?php echo $curauth->user_url; ?></a></dd>
            <dt>Pontuação</dt>
            <dd><?php echo $curauth->pontos; ?></dd>
        </dl>

    Daí, mostra certinho o que preciso. O seu nome e seus pontos acumulados.
    Preciso agora saber como mostrar somente o usuário logado na sidebar, ao invés de todos os autores.
    Grande abraço.

    Se vc está se referindo a verificar se o usuário está logado vc pode usar isso

    <?php if (is_user_logged_in() == true) {
    Aqui vai o código para aparecer para o usuário que está logado
    } ?>

    Mas note que isso não vai mostrar todos os usuário que estão logados no site no dado momento, se era isso que vc queria eu não sei como fazer isso, talvez seja fazendo alguma alteração básica, mas eu não sei como pode ser feito isso e nunca nem vi ninguém fazer.

    Nota: Em dados momento pode ser útil ou até mesmo necessário usar
    global $user_identity;

    Já houve casos de eu perder um bom tempo por não ter chamado esta global, então fique atento a isso.

    Criador do tópico diegoweb

    (@diegoweb)

    FINALMENTE!!!

    Myst1010, realmente a global $user_identity/ foi definitiva.
    Fiz o seguinte. Inclui na sidebar o código:

    <?php {
    if ( ! is_user_logged_in() ) {
     include("login-form.php");
    } else {
    $user = wp_get_current_user();
    $link = 'Bem vindo,'.$user->display_name.'<br/>Você tem '.$user->pontos.'<br/>';
    echo apply_filters('loginout', $link);
    include("login-form.php");
    }
    }
    ?>

    O que isso faz?
    Caso o usuário não estiver logado, vai exibir uma caixa de login que copiei do padrão do sistema e colei na pasta de tema. Lá, fiz algumas customizações – que não tem a ver com os dados a serem exibidos.
    E se ele estiver logado, vai mostrar os dados que quero que mostre. No caso, nome de usuário e quantidade de pontos.
    Como mostra os dados?
    Primeiro, o usuário logado é identificado pela variável $user. Depois, cria-se outra variável com os dados a serem exibidos. Nesse caso, a variável é $link e já “pega” toda a formatação html.
    Pra fechar, aplica-se o filtro e ele volta com os valores todos certinhos.

    Valeu pela ajuda mais uma vez.
    Abraço

    Muito bom, aparentemente está tudo pronto e funcionando, então blz, mas só para informação posterior ou para outras pessoas que estejam querendo fazer algo parecido.

    O WP já tem uma função que traz o formulário de login e vc ainda pode personalizar ele com alguns parâmetros, considero usá-lo mais seguro do que manipular o formulário manualmente.

    Se alguém quiser pode ver mais aqui http://codex.wordpress.org/Function_Reference/wp_login_form

    Infelizmente não sei do formulário de cadastro, mas seria bom se tivesse uma função já pronta para isso também.

    Criador do tópico diegoweb

    (@diegoweb)

    Oi Myst1010

    Exato. Usei esse mesmo form, porém, copiei pra pasta do tema e mudei algumas coisas.

    Para registrar novos usuários, uso o seguinte…
    <a href="<?php echo get_option('home'); ?>/wp-login.php?action=register">Registrar-se</a>
    Abraço

Visualizando 6 respostas - 1 até 6 (de um total de 6)
  • O tópico ‘Mostrar dados do usuário no front end’ está fechado para novas respostas.