Suporte » Outros assuntos » Listar autores com foto

  • Resolvido WP Forever

    (@everlisboa)


    Olá pessoal. Já testei diversos códigos para listar no site os autores com a foto deles junto, mas nenhum funcionou. Estou usando a versão 4.2 do WordPress e utilizo o plugin User Photo para cadastrar a foto dos autores. Alguém possui um código que funciona para esta versão? Obrigado.

Visualizando 4 respostas - 1 até 4 (de um total de 4)
  • Moderador Míriam de Paula

    (@miriamdepaula)

    Você pode tentar criar um código usando a classe WP_User_Query()
    https://codex.wordpress.org/Class_Reference/WP_User_Query

    Criador do tópico WP Forever

    (@everlisboa)

    Obrigado pela dica, Miriam. Eu consegui listar os autores e as fotos deles usando o código abaixo, mas não consigo personalizar a lista usando CSS. Alguém por favor pode me indicar como posso usar o código e personalizar ele? Obrigado.

    <?php
         $display_admins = false;
         $order_by = 'display_name'; 'post_count'; // 'nicename', 'email', 'url', 'registered', or 'post_count'
         $order = 'ASC';
         $role = ''; // 'subscriber', 'contributor', 'editor', 'author' - leave blank for 'all'
         $avatar_size = 161;
         $hide_empty = false; // hides authors with zero posts
    
         if(!empty($display_admins)) {
              $blogusers = get_users('orderby='.$order_by.'&role='.$role);
         } else {
    
         $admins = get_users('role=administrator');
         $exclude = array();
    
         foreach($admins as $ad) {
              $exclude[] = $ad->ID;
         }
    
         $exclude = implode(',', $exclude);
         $blogusers = get_users('exclude='.$exclude.'&orderby='.$order_by.'&order='.$order.'&role='.$role);
         }
    
         $authors = array();
         foreach ($blogusers as $bloguser) {
         $user = get_userdata($bloguser->ID);
    
         if(!empty($hide_empty)) {
              $numposts = count_user_posts($user->ID);
              if($numposts < 1) continue;
              }
              $authors[] = (array) $user;
         }
    
         echo '<ul id="grid-contributors">';
         foreach($authors as $author) {
              $display_name = $author['data']->display_name;
              $avatar = userphoto($author['ID']);
              $author_profile_url = get_author_posts_url($author['ID']);
              echo '<li class="single-item">';
              echo '<div class="author-gravatar"><a href="', $author_profile_url, '">', $avatar , '</a></div>';
              echo '<div class="author-name"><a href="', $author_profile_url, '" class="contributor-link">', $display_name, '</a></div>';
              echo '</li>';
              }
         echo '</ul>';
    ?>
    Moderador Míriam de Paula

    (@miriamdepaula)

    Se for algumas poucas linhas de código CSS, você pode fazer assim:

    add_action('admin_head', 'my_custom_admin_css');
    
    function my_custom_admin_css() {
      echo '<style>
    
     /* seu codigo CSS aqui */
    
      </style>';
    }

    OBS: Esta forma não é muito correta, mas quando se trata de poucas linhas de código, não justifica criar um arquivo CSS só pra isso.

    Agora, se for bastante coisa, é melhor criar um arquivo CSS e adicionar dessa forma:

    add_action( 'admin_enqueue_scripts', 'add_stylesheet_to_admin' );
    
    function add_stylesheet_to_admin() {
            wp_enqueue_style( 'admin-style', get_template_directory_uri() . '/css/admin_style.css' );
    }
    Criador do tópico WP Forever

    (@everlisboa)

    Consegui. Eu não tinha percebido que eu posso trabalhar em cima disso: class=”author-gravatar” e class=”author-name”. Então criei o código CSS para essas classes. Obrigado novamente pela ajuda.

Visualizando 4 respostas - 1 até 4 (de um total de 4)
  • O tópico ‘Listar autores com foto’ está fechado para novas respostas.