WordPress’te Benzer Yazıları Gösterme

Sevgili arkadaşlar bu yazımda dünyada en çok kullanılan hazır sistemlerden WordPress ile ilgili benzer yazılar konusundan bahsedeceğim. Sevdiğim bir yazar ve sitesini yakın tekip ettiğim arkadaşım bu konuda bir yazı yazmış ve kodları paylaşmış. Aslında WordPress kullanan kişiler eklentileri bilir. Fakat çok eklenti kullanmak hem sitemizi kasıyor hem de alanımız da kalabalık yapıyor. Sizlere şimdi eklenti kullanmadan sadece var olan dosyalarımıza kodlar ekleyerek benzer yazıları gösterebileceğiz. Benzer yazılarımızı iki ayrı şekilde gösterebilme imkanımız var. Bir etiketlere göre, diğeri kategorilere göre göstermek.

Etiketlere Göre Benzerlik


Blogunuz da ve ya sitenizde yazmış olduğunuz yazıyla aynı etiket/etiketlere sahip aynı yazıları göstemerk için aşağıda ki kodı kullanabilirsiniz. Bu kodu single.php dosyasının için de göstermek istediğiniz yere yerleştirebilirsiniz…

<?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, // Gösterilecek benzer yazı sayısı
 'caller_get_posts'=>1
 );

 $my_query = new wp_query($args);
 if( $my_query->have_posts() ) {
 echo '<h3>Benzer yazılar</h3><ul>';
 while ($my_query->have_posts()) {
 $my_query->the_post();
 ?>
 <li><a href="<?php the_permalink() ?>" rel="bookmark" title="<?php the_title_attribute(); ?>"><?php the_title(); ?></a></li>
 <?php
 }
 echo '</ul>';
 }
wp_reset_query();
}
?>

Kategoriye Göre Benzerlik


Blogunuz da ve ya sitenizde yazmış olduğunuz yazıyla aynı kategori/kategorilere sahip aynı yazıları göstemerk için aşağıda ki kodı kullanabilirsiniz. Bu kodu single.php dosyasının için de göstermek istediğiniz yere yerleştirebilirsiniz…

<?php
$categories = get_the_category($post->ID);
if ($categories) {
 $category_ids = array();
 foreach($categories as $individual_category) $category_ids[] = $individual_category->term_id;

 $args=array(
 'category__in' => $category_ids,
 'post__not_in' => array($post->ID),
 'showposts'=>5, // Gösterilecek benzer yazı sayısı
 'caller_get_posts'=>1
 );

 $my_query = new wp_query($args);
 if( $my_query->have_posts() ) {
 echo '<h3>Benzer yazılar</h3><ul>';
 while ($my_query->have_posts()) {
 $my_query->the_post();
 ?>
 <li><a href="<?php the_permalink() ?>" rel="bookmark" title="<?php the_title_attribute(); ?>"><?php the_title(); ?></a></li>
 <?php
 }
 echo '</ul>';
 }
wp_reset_query();
}
?>
Arkadaşımızın sitesini ziyaret etmek için Tıklayınız…

1 Yorum

  1. dizimax 27 Haziran 2010

Yorum Yaz