Bu yazımızda wordpress sitelerimizdeki “tüm” yazarlar için bir sayfa oluşturmayı anlatmak istiyorum…Başlıkta “lar” ekini ayrı yazmamın sebebi author.php yi düzenleyip tek tek her yazara ayrı sayfa yazmak değil de sitedeki tüm yazarları tek bir sayfada toplu olarak göstermek diyebilirim..
Bu sistem için wp_list_authors fonksiyonu olsa da gelişmiş bir sayfa hazırlamamız için yeterli değil..
Öncelikle wordpress kodlarıyla değil biraz fonksiyonlarla işlemi yapacağımız için karmaşık gelebilir ama oldukça basit bir işlem..
Bu işlem için sırasıyla kodlarımızı yazmaya başlıyalım..
İlk önce single.php dosyanızı açın ve temanın içerisindeki tüm php kodlarını temizleyin…Content kodunun olduğu yere “Buraya kod gelicek” şeklinde bir yazı yazın..
Yani örnek vericek olursak;
Gibisinden kodları temizleyin ve get_header kodunun üzerine;
<?php /* Template Name: Yazarlar */ ?>
Bunu ekleyin..
Ardından buraya kod gelecek dediğimiz content kodunun yerine ise aşağıdaki açıklamalarla anlattığım kodları ekliycez..
<?php
global $wpdb, $table_prefix;
$order = 'user_nicename';
$user_ids = $wpdb->get_col("SELECT ID FROM $wpdb->users ORDER BY $order");
foreach($user_ids as $user_id) :
$user = get_userdata($user_id);
$level = $table_prefix . 'user_level';
$user->user_level = $user->$level;
$role = $table_prefix . 'capabilities';
$user->role = $user->role[0];
?>
Global wpdb özelliği sayesinde wordpress sql dosyanızdan kullanıcıları rütbelerine göre çekiyoruz..Capabilities yani yetenekleri özelliği sayesinde tüm üyeler yerine yazarları,yöneticileri ve içerik sağlayıcılarını listeliyoruz..
Bunun için aşağıdaki kodla tüm üyeleri değil yazı yazan şahsiyetleri pardon üyeleri listeliyoruz :)
<?php
if( ('admin' != $user->user_login) && ($user->user_level > 0) ) :
?>
Role özelliği sayesinde admin,author ve contributor (içerik sağlayıcıları) çekiyoruz..Daha doğrusu 0-10 arası wordpress üye rütbesinde 0 değeri olan üyeler dışındakileri çekiyoruz :)
User level seviyelerine bu sayfadan bakabilirsiniz..0 Değeri yerine user level seviyesini yazarak o değer üstündeki üyeleri listeleyebilirsiniz.
(Yukarıdaki 3 koduda tema dosyasına ekleyin..Ardından alt tarafta keyfinize göre düzenleme yapabilirsiniz)
Sıra geldi yazarlar sayfasında yazarlar hakkında göstermek istediklerimize;
<?php echo $user->aim; ?>
<?php echo $user->description; ?>
<?php echo $user->display_name; ?>
<?php echo $user->first_name; ?>
<?php echo $user->jabber; ?>
<?php echo $user->icq; ?>
<?php echo $user->ID; ?>
<?php echo $user->last_name; ?>
<?php echo $user->msn; ?>
<?php echo $user->nickname; ?>
<?php echo $user->role; ?>
<?php echo $user->user_email; ?>
<?php echo $user->user_level; ?>
<?php echo $user->user_login; ?>
<?php echo $user->user_nicename; ?>
<?php echo $user->user_registered; ?>
<?php echo $user->user_url; ?>
<?php echo $user->yim; ?>
Yukarıdaki kodları author.php de kullandığımız gibi kullanabiliriz..
Misal toplam yazdığı yazı sayısını belirtmek istiyoruz..
<?php if(get_usernumposts($user->ID) > 0) : ?>
Toplam <a href="<?php get_author_link(true, $user->ID, "$user->user_nicename"); ?>"><?php echo get_usernumposts($user->ID); ?></a> yazısı yayınlanmıştır.
<br />
<?php endif; ?>
Şeklinde kullanabiliriz..
Veya site adresini yayınlamak istiyoruz..
<?php if($user->user_url && !('http://' == $user->user_url)) : ?>
Web sitesi: <a href="<?php echo $user->user_url; ?>"><?php echo $user->user_url; ?></a><br />
<?php endif; ?>
Yukarıdaki listelediğimiz özellikleri if fonksiyonuyla kullanırsak eğer kayıt girilmemişse boş yere kodu basmayı engellemiş oluruz..
Bunuda
<?php if($user->description) : ?>
<p>
<strong>Biyografi:</strong>
<br />
<?php echo $user->description; ?>
</p>
<?php endif; ?>
Şeklinde kullanabilirsiniz..
$user->description
Değerini
$user->last_name; vs gibi yukarıdaki profil bilgisi kodlarıyla çoğaltabilirsiniz :)
Ayrıca avatar kullanmak istiyorsanız da wordpress’in kullandığı gravatar sistemi yardımıyla avatarı da gösterebilirsiniz..
<?php echo get_avatar( $user->ID , 80 ); ?>
80 değeri boyutunu belirtmektedir..Bunu kendinize göre css de ayarlarıp düzenleyebilirsiniz..
Yanlız sayfanın altına
<?php
endif;
endforeach;
?>
Kodlarını eklemeyi unutmayın :)
Ardından sayfayı yazarlar.php olarak kaydedip tema klasörünüze atın..Sayfa Ekle bölümünden sayfa eklerken sağ tarafta yazı template bölümünden “Yazarlar” sayfasını seçip yayınlayın..
Bu kadar :)
Örnek olarak bi sayfa hazırladım..Fakat css le düzenlemesini oluşturmadım :) O yüzden görüntü biraz kötü duruyor..Yinede amacını merak edenlere klavuz olacaktır :)

Çok güzel olmuş ama şunuda ekleyebilsek daha güzel olur örneğin yazarın altına yazarın son x yazısı gibi biryer olsa son yazıları orada sergilense altındada tüm yazıları diye bir link ile tüm yazıları görme imkanımız olsa. Böyle birşey mümkün müdür ? :D
Son yazılar konusunda araştırmak gerek biraz :)
Ama onun yerine author.php oluşturup bu sayfadaki kodları kullanarak son yazılarını listeleyebilirsin :)
<br />user_url ile de basit bir link vermeyi dene..