WordPress benzer yazıları eklentisiz gösterme

Web sitenize gelen ziyaretçilerin sitede daha uzun zaman geçirmesini sağlamanın yollarından bir tanesi benzer yazılarıdır. WordPress’te her şey de olduğu gibi benzer yazılar eklentileri de mevcuttur, fakat bilindiği üzere eklentiler siteyi yavaşlatmaktadır. Bunun içinmümkün olduğunca az eklenti kullanmamız gerekiyor.

Bu yazımızda Benzer yazıları nasıl eklentisiz gösterebileceğimizi göreceğiz. Benzer yazı yok ise rastgele yazılar gösterilecektir, bunun yarar sağlayacağını düşünüyorum.

Benzer yazıları iki kategoriye ayırıyoruz; kategoriye göre benzer yazılar ve etikete göre benzer yazılar.

 

Aşağıda vermiş olduğumuz kod yazının bulunduğu kategoriye bakarak benzer yazıları bulur, eğer benzer yazı yok ise rastgele yazılar gösterir.

[php]

<?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 kategoriye göre 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() ?>" title="<?php the_title_attribute(); ?>"><?php the_title(); ?></a></li>
<?php
}
echo ‘</ul>’;
}
else {
echo ‘<h3>Rastgele yazılar</h3><ul>’;
rastgele_yazi(‘5’); // Gösterilecek rastgele yazı sayısı
echo ‘</ul>’;
}
wp_reset_query();
}
?>

[/php]

 

Aşağıda vermiş olduğumuz kod etikete bakarak benzer yazıları bulur, eğer benzer yazı yok ise rastgele yazılar gösterir.

[php]

<?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 etikete göre 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() ?>" title="<?php the_title_attribute(); ?>"><?php the_title(); ?></a></li>
<?php
}
echo ‘</ul>’;
}
else {
echo ‘<h3>Rastgele yazılar</h3><ul>’;
rastgele_yazi(‘5’);  // Gösterilecek rastgele yazı sayısı
echo ‘</ul>’;
}
wp_reset_query();
}
?>

[/php]

Total
0
Shares

Bir Cevap Yazın