WordPress’te Eklenti Kullanmadan Benzer Yazıları Listeleme

Eklenti kullanmadan  yazmış olduğunuz yazıyla aynı olan yazıları listeleyebilir siniz. Yazıları listeleyebilmek için aşağıdaki kodları single.php de bulunan dongünün içerisine yazmalısınız.  Benzer yazıları listeleyebilmek için etiket ve kategorilerden yardım alıyoruz.

Yazmış olduğumuz yazıyla aynı etikete sahip olan benzer yazıları listeleyebilmek için aşağıdaki kodu single.php dosyasının içerisine yazabilirsiniz.

<?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'=>3, // Gösterilecek benzer yazı sayısı
'ignore_sticky_posts'=>1,
'orderby'=> 'rand' // Ratgele benzer yazıları listeliyoruz
);
$query = new wp_query($args);
if( $query->have_posts() ) {
echo '<h3>Benzer yazılar</h3><ul>';
while ($query->have_posts()) {
$query->the_post();
?>
<li><a href="<?php the_permalink() ?>"  title="<?php the_title_attribute(); ?>"><?php the_title(); ?></a></li>
<?php
}
echo '</ul>';
}
wp_reset_query();
}
?>

Yazmış olduğumuz yazıyla aynı kategoriye sahip olan benzer yazıları listeleyebilmek için aşağıdaki kodu single.php dosyasının içerisine yazabilirsiniz.

<?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'=>3, // Gösterilecek benzer yazı sayısı
'ignore_sticky_posts'=>1,
'orderby'=> 'rand' // Ratgele benzer yazıları listeliyoruz
);
$query = new wp_query($args);
if( $query->have_posts() ) {
echo '<h3>Benzer yazılar</h3><ul>';
while ($query->have_posts()) {
$query->the_post();
?>
<li><a href="<?php the_permalink() ?>" title="<?php the_title_attribute(); ?>"><?php the_title(); ?></a></li>
<?php
}
echo '</ul>';
}
wp_reset_query();
}
?>

  5Yorumlar

  1. hacı   •  

    tammadır sayın hocam. oldu bu iş. çok tşk ediyor, saygılarımı sunuyorum.

  2. hacı   •  

    tam olarak neresine eklememiz lazım hocam? kusurabkama benim php bilgim neredeyse sıfır. hiç anlamıyorum bu işlerden.

    • Celal UYSAL   •     Yazar

      Kodu güncelledim ayrıca http://prntscr.com/aeo55c resimden nereye ekleyeceğini görebilirsin

  3. hacı   •  

    hocam verdiğin ikinci örnekte kategoriye son eklenen yazıları gösteriyor sanırım. dolayısıyla kategorideki tüm yazılarımızın altında aynı benzer yazılar çıkıyor. yani teknoloji kategorisinde 1000 tane yazı varsa hepsinde aynı benzer yazılar çıkmış oluyor. bu google için çok sakıncalı.

    şimdi diyorum ki, kategoriye son eklenenler değilde, kategoriden “rastgele” benzer yazılar gösterebilir miyiz? kodda nasıl bir değişiklik yapmalıyız?

    • Celal UYSAL   •     Yazar

      Evet o konuda haklısın Google tarafı hiç aklıma gelmemişti. Dizinin içerisine aşağıdaki kodu ekleyebilirsin.
      ‘orderby’ => ‘rand’

Bir Cevap Yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir