Ana Sayfa » »
Ağu
10
2013

Eklentisiz Önceki Yazı Bölümü Oluşturma

WordPress yazılarımızın sonunda, önceki yazıya atıfta bulunmak, sayfa içi bağlantılar açısından SEO için sitemize artı bir değer katar. Bunu yaparken Önceki Yazı Linki eklentisi kullanılabilir. Ancak bu kadar basit bir işlem için eklenti kullanmaya gerek yok diye düşünenlerdenseniz bu işi eklentisiz ve daha doğru bir şekilde yapmanızı sağlayacak bir yöntem sunuyorum.

Aşağıdaki kodları temanızın functions.php dosyasına uygun şekilde ekleyiniz. Kod, yazıyla aynı kategorideki (başka bir kategoriden çekmesi mantıklı gelmedi) bir önceki yazının bilgisini alıp, varsa onun etiketlerini bulur ve uygun bir mesajla yazımın altındaki bölümdeki gibi ekrana bir önceki yazı ile ilgili bilgi verir.

/* Önceki Yazı Tavsiyesi */
function yakuphoca_onceki_yazi_tavsiyesi($content) {
 if ( !is_single() ) return $content;
 $onceki_yazi = get_previous_post(true);
 if (!empty( $onceki_yazi )) { //önceki yazı varsa
  $etiketler = get_the_tags($onceki_yazi->ID);
  if ($etiketler) { //önceki yazının etiketleri varsa
    $i = 0;
    foreach($etiketler as $etiket) {
     $e[] = $etiket->name;
     $i++;
     if ($i == 3) break;
    }
    if ($i == 1) {
     $ilgi = $e[0];
    }elseif ($i == 2) {
     $ilgi = $e[0] . ' ve '. $e[1];
    }elseif ($i == 3) {
     $ilgi = $e[0] . ', '. $e[1] . ' ve ' . $e[2];
    }
    $content .= '<div class="oncekiyazi">Bu yazımızı beğendiyseniz, bu kategoride yer alan <a href="' . get_permalink( $onceki_yazi->ID ) .'" title="'. $onceki_yazi->post_title . '">' . $onceki_yazi->post_title . '</a> başlıklı '.$ilgi. ' konularında bilgi veren bir önceki yazımızı da okumanızı tavsiye ederiz.</div>';
  }else{
    $content .= '<div class="oncekiyazi">Bu yazımızı beğendiyseniz, bu kategoride yer alan <a href="' . get_permalink( $onceki_yazi->ID ) .'" title="'. $onceki_yazi->post_title . '">' . $onceki_yazi->post_title . '</a> başlıklı bir önceki yazımızı da okumanızı tavsiye ederiz.</div>';
  }	
 }
 return $content;
}
add_filter('the_content', 'yakuphoca_onceki_yazi_tavsiyesi',99, 1);

Kodu ekledikten sonra bir yazıyı görüntülediğinizde bu yazının en altındaki Bu yazımı beğendiyseniz ile başlayan bölüm gibi bir bölüm görecekseniz, eğer CSS bilginiz varsa .oncekiyazi CSS sınıfını kullanarak, style.css dosyanıza ekleyeceğiniz biçimlendirme kodlarıyla görünümünü istediğiniz gibi özelleştirebilirsiniz.

Bu yazımı beğendiyseniz, bu kategoride yer alan WordPresste Kategorileri Birleştirme Toplu Etiket Ekleme başlıklı etiket, etiketleme ve kategori konularında bilgi veren bir önceki yazımı da okumanızı tavsiye ederim.

Yazıya 7 Yorum Yapıldı+ Yorum Ekle

  • Hocam merhaba, kodu test etme imkanı buldum. 3 farklı sunucuda da aynı hatayı aldım localhost dahil.

    Hata: Parse error: syntax error, unexpected T_RETURN in C:\xampp\htdocs\wp-content\themes\Celebrity\functions.php on line 4

    4 nolu satır: if ( !is_single() ) return $content;

    • Kodu kendi sitemde ve bilgisayarımda denedim, bahsettiğiniz tarzda bir hata meydana gelmedi.
      Hata veren satırda böyle bir hata olması için bir sebep yok aslında. Kodun amacı eğer tekil sayfada değilsek içeriği olduğu gibi döndürüyor.
      Bir de şöyle deneyin. 4. nolu satırı if (is_single()) { olarak değiştirip, en alttaki return $content; satırının hemen üstüne } (süslü parantez) ekleyip, bir deneyin.

  • Hocam süslü parantezleri ekleyince de boş bir alan çıktı sonuç vermedi ama onları silince bu kez kod çalıştı. Sanırım ya ben gece gece bir şeyleri eksik yaptım, ya da kodun bana garezi vardı. :)
    Şimdi aktif çalışıyor, eklentiye gerek kalmadı bu şekilde. teşekkürler.

    Ayrıca bir Türkçe öğretmeni olarak da bir düzeltme de ben yapayım. Metinde bu şekliyle bir anlatım bozukluğu mevcut.

    Şu şekilde olması en doğru şeklidir:
    Bu yazımızı beğendiyseniz, bu kategoride yer alan -yazı başlığı- başlıklı bir önceki yazımızı da okumanızı tavsiye ederiz.

    "bir önceki" ifadesi "yazımızı" ifadesinden önce gelmeli.

    Umarım yanlış anlamamışsınızdır, düzeltmek istedim sadece.
    Takipteyim, kolay gelsin.

    • Kodların çakıştığı başka bir kod olsa gerek, verdiğim kod basit bir kod, çalışmaması gerçekten çok ilginç.
      Düzeltme için de ayrıca teşekkür ederim. Aslında cümlede bir sıkıntı olduğunun farkındaydım ama görememiştim. Böyle daha doğru oldu.

  • Merhabalar hocam. Kapanan sitemin temasına eklemeler yapıp satmayı düşünüyordum. R10'a önceleri üyeliğim vardı ama silinmiş, giriş yapamıyorum ben de buraya yazayım dedim kusura bakmayın. http://www.r10.net/wordpress/1099471-wp-yazi-ici-sayfalama-da-sayfalara-ozel-isim-verme.html şu sayfada anlatmış olduğunuz iki gündür uğraşlarım sonrasında sonuca ulaşmama biraz daha yaklaştırdı. Orada anlattıklarınız sayfa 1'i Tek Parça olarak, Sayfa 2'yi fragman olarak değiştiriyor misal. Bunu şu şekilde nasıl yapabiliriz acaba? Ben yazıyı eklerken Fragman - Tek Parça - VK 720p - Part 1 - Part2 diye sıralanmasını istiyorum ama sıralama bazen değişebiliyor. Sayfalama yaparken genelde komutu kullanılıyor. Bunun yanında alternatif olarak , , , olarak özelleştirilebiliyor. İşin içinden çıkamadım yardımcı olabilirseniz çok sevinirim. Bu yorumu da çok gereksiz bir yere açtım kusura bakmayın.

  • Hocam mesajımın tam olarak içeriği şöyle http://n1308.hizliresim.com/1d/g/rh1u5.png

  • Teşekkürler hocam siteme ekledim çok hoş oldu. :)

memo_dur için bir cevap yazın Cevabı iptal et

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

Yukarı Çık