WordPress Blog

WordPress’e Yazar Sayfası Eklemek

14.01.2008 | Haberler

Çok kullanıcılı blogların işine yarayacak bir yöntemden bahsetmek istiyorum. Anasayfanızda yazıların alt bilgilerinde yazıyı kimin gönderdiğine dair bir bilgi bulunur, yoksa da kendiniz ekleyebilirsiniz, bu;

Yazar: < ?php the_author() ?>

şeklinde bir koddur. Fakat bu kodda herhangi bir bağlantı veya gönderme yoktur. Eğer bu kodu

Yazar: < ?php the_author_posts_link(); ?>

şekline dönüştürürseniz yazar ismini bir bağlantıyla birlikte görünür yaparsınız. Bu ise yazar isminin üzerine tıkladığınızda o yazara ait tüm yazılara arşiv sayfasından (archive.php deki formatla) ulaşabilmenize olanak sağlar. Bizim yapmak istediğimiz biraz daha gelişmiş bir yazar sayfası oluşturmak. Bunun için wordpress blog motorunun kullanmamıza imkan verdiği author.php dosyasını devreve sokuyoruz. Planet WordPress için nasıl yazar sayfası oluşturduğumu anlatmayı, dolayısıyla örnekle açıklamayı daha yerinde buluyorum.

Öncelikle home.php (siz index.php veya archive.php ile aynı şeyi yapabilirsiniz) dosyasının bir kopyasını alarak ismini author.php olarak değiştirdim. Bu yeni oluşturduğum author.php dosyasını açarak içerisine döngü başlamadan

< ?php if (have_posts()) : while (have_posts()) : the_post(); ?>

yani yukarıdaki satırdan önce şu kodları girdim;

< ?php
if(isset($_GET['author_name'])) :
$curauth = get_userdatabylogin($author_name);
else :
$curauth = get_userdata(intval($author));
endif;
?>
<h2>< ?php echo $curauth->nickname; ?> hakkında bilgi</h2>
<div class="yazarust">
<img src="<?php echo get_settings('home'); ?/>/uploads/< ?php echo $curauth->nickname; ?>.jpg" width="125" alt="< ?php echo $curauth->nickname; ?>"/>
</div>
<div class="yazaralt">
<p>İsim: < ?php echo $curauth->first_name; ?> < ?php echo $curauth->last_name; ?></p>
<p>Website: <a href="<?php echo $curauth->user_url; ?>">< ?php echo $curauth->user_url; ?></a></p>
<p>Hakkında: < ?php echo $curauth->user_description; ?></p>
</div>
<h2>< ?php echo $curauth->nickname; ?> tarafından gönderilen yazılar:</h2>

Bu kodlarla sağlanan o anda tıklanan yazara ait bilgilerin profilinden çekilmesidir. Bu konuda detaylı bilgiyi WordPress Codex’in ilgili sayfasında bulabilirsiniz. Sonrasında döngümüzün başlangıç satırı olan

< ?php if (have_posts()) : while (have_posts()) : the_post(); ?>

var. Bundan sonrada ister sadece yazıların başlıklarını veya meta bilgilerini, isterseniz kısa özetlerini isterseniz de anasayfadaki gibi more takısıyla bölünen kısma kadar olanı gösterbilirsiniz. Ben sadece başlık ve tarih bilgilerini göstermeyi uygun gördüğümden döngünün içerisine var olan ;

<h1><a href="<?php the_permalink() ?>" rel="bookmark">< ?php the_title(); ?></a>< ?php the_time(' d/m/Y'); ?></h1>
Kategori: < ?php the_category(', ') ?> | < ?php the_tags('Etiketler: ',', '); ?> | Yazan: < ?php the_author_posts_link(); ?>
<div class="tekcizgi"></div>
< ?php the_content(__(' &raquo;&raquo;'));?>

bu kodları aşağıdaki şekilde yalınlaştırdım.

<a href="<?php the_permalink() ?>" rel="bookmark">< ?php the_title(); ?></a>< ?php the_time(' d/m/Y'); ?>

Böylelikle arşiv sayfam oluşmuş oldu. Son yapmam gereken ise yazarlar için kullanılan resimleri sisteme upload etmek. Yukarıdaki kodlarda kullanılan yöntemle http://www.planetwp.com/uploads/yazarlar/ altına kopyalanan yazarın kullanıcı adını taşıyan jpg dosyası otomatik olarak yazarın resmi oluyor. Buradaki /uploads/ kısmı sizde (eğer değiştirmediyseniz) wp-contents/uploads/ şeklinde olacaktır. Bu kısmı Admin panelindeki Tercihler > Çeşitli menüsünden ayarlıyorsunuz.
Biçimlendirmeyi yapmak için ise style.css dosyasına iki adet tanımlama ekledim, tabii buradaki biçimlendirmelerin şu anda kullandığım temaya özgü olduğunu unutmayın.

.yazarsag {
width:300px;
float: left;
margin-top: 10px;
}
.yazarsol {
float: left;
padding: 7px;
margin: 15px 10px 10px 0;
background:#FFFFFF;
border: 1px solid #CCCCCC;
}

« | »

Bu yazıya link verenler: