WordPress İle Pluginsiz Bir Blog
Wordpress ile akla hayale gelmedik bloglar yapılabiliyor artık. Wordpress'in kendi fonksiyonları bir yana, yazılmış yüzlerce plugin, Wordpress'in gücüne güç katıyor. Bu eklentiler tabi beraberinde bazı sorunları da getiriyor.
WordPress ile akla hayale gelmedik bloglar yapılabiliyor artık. WordPress‘in kendi fonksiyonları bir yana, yazılmış yüzlerce plugin, WordPress‘in gücüne güç katıyor. Bu eklentiler tabi beraberinde bazı sorunları da getiriyor. Trafik alan bir blogda bu eklentiler yüzünden tıkanma yaşanabiliyor veya ücretli hostingdeyseniz, hosting şirketi tarafından kapı önüne konabiliyorsunuz. Bu yüzden zamanla çok gerekli eklentiler dışında eklenti kullanmamaya özen gösteriyor bloggerlar.
Şurda da anlattığım gibi Fadonet‘in temasında çeşitli güncellemeler yaptım ve plugin sayısını en aza indirmeye çalıştım. Böylece hem performansı arttı sitenin hem de daha kullanışlı bir hale geldi.
EKLENTİ KULLANMADAN NELER YAPABİLİRİZ?
Son yazılar, son yorumlar, çok yorumlananlar, kategorinin son yazıları, rastgele yazılar gibi en çok kullanılan modülleri eklenti kullanmadan WordPress’in kendi fonksiyonları ve birazcık PHP bilgisiyle halledebiliyoruz. Şimdi sırasıyla bunları hangi kodlarla yapabileceğimizi görelim.
SON YAZILARI GÖSTERMEK
Bu modül sayesinde WordPress’de girdiğimiz son yazıları sayısı, excerpt fonksiyonu, tarihi, yorum sayısı vs. ile birlikte gösterebiliriz. Bunun için aşağıdaki kodu temamızın istediğimiz herhangi bir yerine gömüyoruz:
<?php query_posts('showposts=10'); ?>
<ul>
<?php while (have_posts()) : the_post(); ?>
<li>
<h3> <a href="<?php the_permalink() ?>" title="<?php the_title(); ?>"><?php the_title(); ?></a> <span><?php the_time('d M, Y'); ?></span></h3>
</li><?php endwhile;?>
</ul>
SON YORUMLARI GÖSTERMEK
Zaten widget destekli bir WordPress teması kullanıyorsanız ve widgetleri otomotik olarak alıyorsanız bu koda ihtiyacınız olmayacak ama temanızda widget dışında son yorumları göstermek istiyorsanız aşağıdaki kodu functions.php dosyasına eklemeniz yeterli.
<ul> <?php if (empty($comment_posts) || $comment_posts < 1) $comment_posts = 6; global $wpdb; $sql = "SELECT DISTINCT ID, post_title, post_password, comment_ID, comment_post_ID, comment_author, comment_author_email, comment_date_gmt, comment_approved, comment_type,comment_author_url, SUBSTRING(comment_content,1,60) AS com_excerpt FROM $wpdb->comments LEFT OUTER JOIN $wpdb->posts ON ($wpdb->comments.comment_post_ID = $wpdb->posts.ID) WHERE comment_approved = '1' AND comment_type = '' AND post_password = '' ORDER BY comment_date_gmt DESC LIMIT ".$comment_posts; $comments = $wpdb->get_results($sql); $output = $pre_HTML; foreach ($comments as $comment) { ?> <li> <a href="<?php echo get_permalink($comment->ID); ?>#comment-<?php echo $comment->comment_ID; ?>" title="<?php echo $comment->post_title; ?>"> <strong><?php echo strip_tags($comment->comment_author); ?>:</strong> <?php echo strip_tags($comment->com_excerpt); ?>... </a> </li> <?php } ?> </ul>
EN ÇOK YORUMLANAN YAZILARI GÖSTERMEK
Bu modül sayesinde, blogunuzda en çok yorum alan yazıları yorum sayısıyla birlikte yazdırabiliyorsunuz. Kaç yazı olacağına her zaman olduğu gibi siz karar veriyorsunuz. İşte çok yorum alan yazıları göstermek için kod:
<?php
$sql="SELECT post_title, comment_count, post_date, guid
FROM wp_posts
ORDER BY comment_count DESC
LIMIT 7";
$results = $wpdb->get_results($sql);
foreach ($results as $r) {
echo '<li><h3><a href="' . $r->guid . '" title="' . $r->post_title . '"> ' . $r->post_title .
' (' . $r->comment_count . ')</a> <span>'.$r->post_date.'</span></h3></li>';
}
?>
KATEGORİNİN SON YAZILARINI GÖSTERMEK
Tekil yazılarımızı gösterirken, aynı kategoriye girilmiş son yazıları göstermemiz gerekebilir bazen. Bunun için ekstra eklenti kurmaya gerek yok. Aşağıdaki kodu single.php dosyasına ve sidebar.php dosyasına eklememiz yeterli:
<?php
global $post;
$categories = get_the_category();
$category = $categories[0];
$sidebar_cat_id = $category->cat_ID;
$sidebar_cat_name = $category->cat_name;
?>
<?php
$sidebar_related_query = new WP_Query('cat=' . $sidebar_cat_id . '&showposts=5&offset=0&orderby=post_date&order=desc');
while ($sidebar_related_query->have_posts()) : $sidebar_related_query->the_post();
$do_not_duplicate = $post->ID;
?>
<li>
<h3><a href="<?php the_permalink(); ?>"><?php the_title(); ?></a> <br /> <span><?php the_time('d.m.Y'); ?></span></h3>
</li>
<?php endwhile; ?>
</ul>
RASTGELE YAZILAR GÖSTERMEK
Özellikle tekil sayfalarda olması gerektiğini düşündüğüm bir başka modül. Kullanıcılara bloga girmiş olduğunuz yazılardan bir demet sunmaya ne dersiniz? İşte bunun için gerekli kod:
<?php $my_query = new WP_Query('orderby=rand&showposts=5');
while ($my_query->have_posts()) : $my_query->the_post();
?>
<ul>
<li>
<h3> <a href="<?php the_permalink() ?>" rel="bookmark" title="Permanent Link to <?php the_title_attribute(); ?>"><?php the_title(); ?></a><span><?php the_time('d.m.Y'); ?></span></h3>
</li>
<?php endwhile; ?>
</ul>
İLGİLİ YAZILARI GÖSTERMEK
Google‘da related posts diye aratırsanız, karşınıza bir çok eklenti seçeneği çıkacaktır. Ama bu işi daha basit bir şekilde, eklenti kullanmadan da yapabiliriz. Kodumuzun mantığı etiketlerle ilgili. Aynı etiketlerle etiketlenmiş yazıları ilgili yazılar olabilir düşüncesiyle göstermek. İşte kod:
<?php
$tags = wp_get_post_tags($post->ID);
if ($tags) {
$tag_ids = array();
foreach($tags as $individual_tag) $tag_ids[] = $individual_tag->term_id;
$args=array(
'tag__in' => $tag_ids,
'post__not_in' => array($post->ID),
'showposts'=>5, // Number of related posts that will be shown.
'caller_get_posts'=>1
);
$my_query = new wp_query($args);
if( $my_query->have_posts() ) {
echo '<ul>';
while ($my_query->have_posts()) {
$my_query->the_post();
?>
<li>
<h3> <a href="<?php the_permalink() ?>" rel="bookmark" title="Permanent Link to <?php the_title_attribute(); ?>"><?php the_title(); ?></a><span><?php the_time('d.m.Y'); ?></span></h3></li>
<?php
}
echo '</ul>';
}
?>
Yukarda vermiş olduğum kodlar hepsi tarafımca denenmiş ve sorunsuz bir şekilde çalıştırılmıştır. Bu kodları css ile şekillendirebilir veya kodlara WordPress’in bazı özelliklerini ekleyebilirsiniz. Yapmak isteyip de yapamadığınız noktalar olursa yorum olarak ekleyebilirsiniz. Elimden geldiğince cevaplamaya çalışırım.

Sonuçta eklentilerde kodlardan oluşuyor :).Aynı şey değilmi?
Orası öyle tabi…Ama hem daha fazla kod hem de daha sorgu demek eklenti…