WordPress eklentisiz benzer yazıları gösterin

WordPress siteniz için yapabileceğiniz çeşitli modifikasyonlar var. Altyapısının elverişli olması sebebiyle sınırsız çeşitte eklentiyle bir çok şekilde tasarımlarınızı oluşturabilirsiniz. Ancak bunları yaparken şiddetle tavsiye edeceğim şey eklenti kullanmadan kodlarınızı saf bir şekilde temanıza entegre ederek kullanmanız. Çünkü eklentiler bir çok açığı sitenize çekebilir.

Benzer yazılar eklentisinin kullanarak yazılarınız altında o yazının kategorisinden ya da etiketlerinden benzer yazıları gösterebilir ve yazıyı okuyan ziyaretçilerinize aynı kategoride farklı yazılar göstererek zaman geçirmelerini sağlayabilirsiniz. Ancak bizim burada yapacağımız aynı işlevin eklentisiz bir şekilde gerçekleştirilebilmesi için.

Not: Değişiklik yapacağınız dosyaların mutlaka yedeğini alın.

Single.php dosyamızı açıyoruz ve şu kodu, benzer yazıların gösterilmesini istediğimiz yere yapıştırıyoruz. Vereceğim ilk kod aynı kategoriden benzer yazıların çekilmesi için.

<?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();
}
?>

Aşağıdaki kodu ise etiket benzerliğine göre yazıları sıralamak için kullanabilirsiniz.

<?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();
}
?>

İşte bu kadar.
Kodların düzenlenmesi için yakuter’e teşekkürler.

Kenan CANOL

Google sayfama göz atabilirsiniz.

Bir Cevap Yazın

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