Sitedeki Tüm Kullanıcıları Avatarlarla Listelemek

Sitedeki Tüm Kullanıcıları Avatarlarla Listelemek

Aslında bu koda çok başka yerde rastladım. Soranlar oluyordu yazayım dedim. Sizinle aşağıda paylaşacağım kod ile sitedeki tüm kullanıcıları -ya da yazar da diyebiliriz- listeleyebilirsiniz. Gravatar’ın yardımıyla bu kullanıcıların avatarlarını da gösterebilirsiniz. Özelleştirebileceğiniz bir fonksiyon olduğunu düşünüyorum.

Kullanıcıları Listelemek

Aşağıdaki kodu temanızda oluşturacağınız herhangi bir sayfa şablonuna ya da istediğiniz herhangi bir alanda kullanabilirsiniz. Yapmanız gereken kodun listeleme alanını kendi temanıza göre düzenlemek. Gerisini koda bırakın ve arkanıza yaslanın…

Aşağıda belirtilen kodu temanızın dosyalarına ekleyeceğinizden, çalışacağınız dosyaların lütfen yedeğini alınız. Temanızdaki dosyalar wp-content/themes/temanızınadı/ klasöründe bulunmaktadır.
<?php
     $yoneticileri_goster = false;
     $siralama = 'post_count'; // 'nicename', 'email', 'url', 'registered', 'display_name', ya da 'post_count'
     $sirala = 'DESC';
     $kullanici_turu = ''; // 'subscriber', 'contributor', 'editor', 'author' - tüm kullanıcıları seçmek için boş bırakın
     $avatar_boyutu = 161; // Avatar boyutu, kendi temaıza göre değişiklik yapın
     $bos_olani_goster = false; // Yazıya sahip olmayan yazarları gizle
         
     if(!empty($yoneticileri_goster)) {
          $kullanicilar = get_users('orderby='.$siralama.'&role='.$kullanici_turu);
     } else {
 
     $yoneticiler = get_users('role=administrator');
     $exclude = array();
      
     foreach($yoneticiler as $ad) {
          $exclude[] = $ad->ID;
     }
 
     $exclude = implode(',', $exclude);
     $kullanicilar = get_users('exclude='.$exclude.'&orderby='.$siralama.'&order='.$order.'&role='.$kullanici_turu);
     }
     
     $yazarlar = array();
     foreach ($kullanicilar as $kullanici) {
     $kul = get_userdata($kullanici->ID);
 
     if(!empty($bos_olani_goster)) {
          $sayac = count_user_posts($kul->ID);
          if($sayac < 1) continue;
          }
          $yazarlar[] = (array) $kul;
     }
         //Yazar listeleme alanı
     echo '<ul id="grid-contributors">';
     foreach($yazarlar as $yazar) {
          $gorunen_ad = $yazar['data']->display_name;
          $avatar = get_avatar($yazar['ID'], $avatar_boyutu);
          $yazar_profil_url = get_author_posts_url($yazar['ID']);
             
          echo '<li class="single-item">';
          echo '<div class="author-gravatar"><a href="', $yazar_profil_url, '">', $avatar , '</a></div>';
          echo '<div class="author-name"><a href="', $yazar_profil_url, '" class="contributor-link">', $gorunen_ad, '</a></div>';
          echo '</li>';
          }
     echo '</ul>';
?>

Yukarıdaki alanda bazı değişkenleri düzenlemek isteyebilirsiniz. Açıklamalarını aşağıya yazıyorum.

$yoneticileri_goster Kullanıcı listesinde kullanıcıları göstermek isterseniz true, istemezseniz false olarak değer atayabilirsiniz.
$siralama Neye göre sıralanacağını belirlediğiniz alandır. ‘nicename’, ’email’, ‘url’, ‘registered’, ‘display_name’, ya da ‘post_count’ değerlerinden birini alır.
$sirala ASC veya DESC olarak değer atanabilir, artan veya azalan sıralama yapar
$kullanici_turu ‘subscriber’, ‘contributor’, ‘editor’, ‘author’ olarak belirtebilirsiniz. Kullanıcıların tümü için boş bırakın.
$avatar_boyutu Avatar boyutu, kendi temaıza göre değişiklik yapabilirsiniz. Sayısal bir değer olmak zorundadır.
$bos_olani_goster Yazıya sahip olmayan yazarları gizle. Gizlemek isterseniz true, gösterilsin derseniz true olmalıdır.

Herhangi bir sorunuz olursa lütfen yorum bırakmaktan çekinmeyin.
Selametle

2 thoughts on “Sitedeki Tüm Kullanıcıları Avatarlarla Listelemek”

  1. hocam teşekkürler yazı için çok faydalı ama ben en çok yazan 10 kişiyi listelemek istiyorum bunu nasıl yaparım birde yazarları float left ile yan yana alamadım bu işlerde yeniyim yardımcı olursanız sevinirim

  2. merhaba, emeğinize sağlık güzel anlatım. Yazar sıralamasını; en son yazı yazanı en başta gösterecek şekilde nasıl ayarlayabilriz?

Comments are closed.