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

Bir cevap yazın

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