23 Haziran 2009

Yazı Etiketlerini Pencere Başlığında Gösteriyoruz

WordPress Yorum Ekle

WordPress'de yazılara girdiğimiz yazı etiketlerini, SEO amacıyla, tekil yazılarda sayfanın pencere başlığında gösterebiliriz.
Aşağıdaki kodları temanızın Üst Kısım (header.php) dosyasında </title> kodunun hemen öncesine ekleyin. Böylece tekil yazılarda varsa yazının etiketlerini gösterebilirsiniz.

  1. <?php
  2. if (is_single()) {
  3.   $posttags = get_the_tags( (int) $post->ID);
  4.   if ($posttags) {
  5.    foreach($posttags as $tag) {
  6.     echo ' ' .  wp_specialchars($tag->name);
  7.    }
  8.   }
  9. }
  10. ?>

All in One SEO Kullanıcıları İçin Çözüm

Yukarıdaki yöntem ne yazıkki All in One SEO eklentisinin etkin olduğu sitelerde işe yaramıyor. Çünkü bu eklenti başlığı alıp, yeniden biçimlendiriyor ki bu esnada bizim yaptığımız değişiklikleri imha ediyor.
Bunun üzerine bu eklentiyi şöyle bir inceledim, eklenti aslında etiketlerle iş yapıyor ancak tekil yazılar için değil de sadece üst kısım (header) alanında 'Keywords' bölümünü doldururken kullanıyor.
AIO kullananlar içinde elbette çözümüm var ama biraz uzun olabilir ve AIO'yu güncellediğinizde AIO içerisinde yapacağımız değişikliği tekrar yapmanız gerekecek. Haydi başlayalım!
Öncelikle aşağıdaki kodla temamızın Tema fonksiyonları (functions.php) dosyasına ekliyoruz.

  1. function yg_etiketler() {
  2.  global $post;
  3.  if (is_single()) {
  4.   if ( $post ) {
  5.       $posttags=get_the_tags($post->ID);
  6.       if ($posttags) {
  7.        $liste = '';
  8.        foreach ($posttags as $tag) {
  9.         $liste .= ' '. wp_specialchars($tag->name);
  10.        }
  11.        return $liste;
  12.       }
  13.   }
  14.  }
  15.  return '';
  16. }
  17.  
  18. function yg_aio_keywords() {
  19.   global $post;
  20.   if ( is_single() ) {
  21.       if ($post) {
  22.         $keywords = null;
  23.         $keywords = stripcslashes(get_post_meta($post->ID, "keywords", true));
  24.         if (isset($keywords) && !empty($keywords)) {
  25.             $keywords = preg_replace('/\s+/',' ', str_replace(',', ' ', $keywords));
  26.             return $keywords;
  27.         }
  28.       }
  29.   }
  30.   return '';
  31. }

Böylece 'yg_etiketler' adında, tekil yazılarda yazı etiketlerini getiren bir fonksiyon, 'yg_aio_keywords' adında, yazı yazarken sayfanın alt kısmındaki AIO alanındaki 'Keywords' bölümüne girdiğimiz anahtar kelimeleri getiren bir fonksiyonumuz daha olmuş oldu.
Şimdi de eklentide bulunan 'all_in_one_seo_pack.php' dosyasını açıp aşağıdaki satırı bulun:

  1. $new_title = str_replace('%post_author_lastname%', ucwords($authordata->last_name), $new_title);

Bu satırın hemen altına aşağıdaki kodları ekleyin:

  1. $new_title = str_replace('%etiket%', yg_etiketler(), $new_title);
  2. $new_title = str_replace('%anahtar%', yg_aio_keywords(), $new_title);

İlgili yerin son hali aşağıdaki gibi olacak:

  1. $new_title = str_replace('%post_author_lastname%', ucwords($authordata->last_name), $new_title);
  2. $new_title = str_replace('%etiket%', yg_etiketler(), $new_title);
  3. $new_title = str_replace('%anahtar%', yg_aio_keywords(), $new_title);

Merak etmeyin artık son adıma geldik. AIO'nun ayarlarına giriyoruz ve 'Post Title Format' bölümündeki ayarı resimdeki gibi ayarlıyoruz.

Buradaki yöntem sadece tekil yazılarda işe yarayacaktır, bu nedenle oluşturduğumuz %etiket% ve %anahtar% ifadelerini diğer ayarlarda kullanmayın. Herşeyi doğru yaptıysanız tekil yazıya girdiğinizde başlık çubuğunda resimdeki gibi bir görüntü elde edeceksiniz.

Aslında o kadar da uzun değilmiş.


Bu yazının kısa bağlantısı http://www.yakupgovler.com/?p=907.

Yazılarımı RSS aboneliği ile takip edebilir, yeni yazılarıma kolaylıkla ulaşabilirsiniz. Bunun için ise RSS adresimi kullanabilirsiniz.


“Yazı Etiketlerini Pencere Başlığında Gösteriyoruz” yazısı için 8 Yorum

Bu yazıya yapılan yorumları dilerseniz, ( RSS 2.0 ) beslemesini kullanarak takibe alabilirsiniz.

  1. Mehmet dedi ki:

    Faydalı bilgiler için teşekkürler Yakup bey..

  2. İlker Aksoy dedi ki:

    Bir Not: All in One SEO Pack eklentisi yüklü ise, bu değişiklik bir işe yaramayacaktır.

  3. Yakup Gövler dedi ki:

    @İlker, yazıyı yeniden düzenledim AIO için de bir çözüm sundum. Alın da hayrını görün. 🙂

  4. Kemal Gürler dedi ki:

    Şimdi daha güzel oldu 🙂

  5. Yunus dedi ki:

    Merhabalar.

    Blocks temasını kullanıyorum. Function'a kodları ekledim.

    Eksiksiz yaptım ama post'u açtığımız zaman sayfa boş bir hali alıyor

    Teşekkürler.

  6. hakan dedi ki:

    hocam, all in one seo konusu açılmışken sizden bir ricam var, yardımcı olursan herzaman ki gibi çok sevinirim. tekil sayfada metaların hepsi çıkıyor.

    yalnız kategoriler de sadece 'description' ve 'canonical' var. etiket sayfasında ise tek 'canonical' var. ben istiyorum ki tüm sayfalar tekil sayfa da olduğu gibi tüm metalar çıksın.

    örneğin, etiket sayfasında description olarak 'xxx etiketli yazılar' , keyword olarak da 'xxx' yazabilir. Teşekkürler

  7. yasin emre dedi ki:

    Yararlı bilgiler için teşekkür ederim.

    Post Title Format'a yazdığımız %anahtar% ne işe yarıyor acaba ?

  8. Yakup Gövler dedi ki:

    @yasin emre, İlgili bölüm, etiketleri başlığın istediğiniz yerinde göstermenizi sağlıyor. %anahtar% ifadesinin yerini değiştirerek, isterseniz etiketleri başlığın başında, ortasında ya da nerede isterseniz orada gösterebilirsiniz.