08 Ağustos 2009

Başlıktaki Kelimeler Etiket Olsun (güncellendi)

WordPress Yorum Ekle

WordPress'te etiket seçmek, eklemek bazen işkence olabiliyor. Halbuki çoğu zaman da başlıkta geçen kelimeleri etiket olarak ekliyoruz. Elle bu kelimeleri eklemek yerine WordPress'in sizin yerinize otomatik olarak eklemesini ister misiniz?

Bunun için aşağıdaki kodları temanızın Tema fonksiyonları (functions.php) dosyasına uygun bir şekilde ekleyin.

  1. function yg_auto_tag_append($post_id, $post) {
  2.  $tag_words = explode(" ", preg_replace("([^A-Za-z0-9üğıişçöÜĞİŞÇÖ]+)", " ", $post->post_title));
  3.  $tags = array();
  4.  foreach ($tag_words as $tag) {
  5.   if (strlen($tag) > 4) $tags[] = $tag;
  6.  }
  7.  if ($tags) wp_set_post_tags($post_id, $tags, true);
  8. }
  9.  
  10. add_action('save_post', 'yg_auto_tag_append', 10, 2);

Hepsi bu. Eğer bu özelliği iptal etmek isterseniz add_action olan satırın başına // karakterlerini eklemeniz yeterli. WP 2.8.3 sürümünde denenmiştir.

Güncelleme: Kodda yapılan iyileştirme ile artık 4 karakterden uzun olan kelimeler etiket olarak ekleniyor, böylece veya, ya da, ve gibi bağlaç ve kısa kelimeler etiket olarak eklenmemiş oluyor. Ayrıca önceki kodda eğer başlık içerisinde özel karakterler kullanılıyorsa, bu durumda onlar da etiket olarak ekleniyordu. Artık bütün özel karakterler filtreleniyor.


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

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


“Başlıktaki Kelimeler Etiket Olsun (güncellendi)” yazısı için 34 Yorum

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

  1. Mehmet dedi ki:

    Teşekkürler Yakup bey..

  2. Eylos dedi ki:

    Üstad yine parçalamışsın kodları 🙂

  3. Yakup Gövler dedi ki:

    Teşekkür ederim, bunlar basit şeyler. 🙂

  4. harew dedi ki:

    bu kodu sadece başlıktan sonra belilediğimiz kelimeri ekleyerek yapamazmıyız..

    örnek başlık resmi,başlık görüntüleri bu şekilde nasıl yapabiliriz..

  5. Yakup Gövler dedi ki:

    Ne demek istediğinizi anlayamadım. Başlık resmi, başlık görüntüleri nedir?

  6. cevat dedi ki:

    Hocam function.php sayfam bu şekilde altına da yerleştirsem de üstüne de yerleştirsem hata veriyor. (damai_tema)

  7. Yakup Gövler dedi ki:

    functions.php dosyasının sonundaki ?< kodunun hemen üzerindeki satıra ekleyin.

  8. cevat dedi ki:

    Hocam diğer sitemin dosyası aşağıdaki şekilde buna da bir yol gösterirseniz memnun olacağım. Eklenti kodu için emeğinize teşekkür ederim. devamı dileği ile :

    **** Yazdığınız kodlar filtrelendiğinden karışık görünüyordu, silmek zorunda kaldım ****

  9. harew dedi ki:

    ben başlığı bozmadan başlığa etiket eklemek istiyorum..

    başlık adrina lima olsun etiketler ise adrina lima resmi,adrina lima fotoları,adrina lima görüntüleri,adrina lima videoları.. bu şekilde nasıl yapabiliriz..

  10. İlker Aksoy dedi ki:

    RSS ya da diğer hazır içerikler ile, otomatik içerik sağlayıcılar vasıtasıyla oluşturulan sitelerde kullanılabilir. Kodlarınıza sağlık...

  11. Yakup Gövler dedi ki:

    @harew, bunun için
    $tags = explode(" ", preg_replace('/\s+/',' ',$post->post_title));
    satırını aşağıdaki ile değiştirin.
    $tags[] = $post->post_title . " resimleri";
    $tags[] = $post->post_title . " videoları";
    $tags[] = $post->post_title . " bilmem neleri";
    Bu satırları ihtiyacınıza göre çoğaltıp, kullanabilirsiniz.
    Eğer yukarıdaki satırı değiştirmeden altına bunları eklerseniz de başlıktaki kelimeleri de etiket olarak eklemiş olursunuz.

  12. harew dedi ki:

    çok saol hocam

  13. Yakup Gövler dedi ki:

    @cevat, nasıl bir hata mesajı alıyorsunuz?
    Cannot motify header ile başlayan bir hata ise buraya bakın.
    Functions.php dosyasına nasıl kod ekleneceğiyle ilgili olarak ise buraya bakın.

  14. Cevat ÖZTÜRK dedi ki:

    Sayın hocam http://www.mehterler.com sitemde şu http://tema.benimistanbul.com/?wptheme=mavis_v2 adresteki mavis_v2 temasını kullanıyorum. Ama bu temanın function.php dosyası çok karışık düzenleyemedim. mavisv1.rar dosyasının içinde ilgili dosya var. Vaktinizi alacaksa uğraşmayın. Saygılar.

  15. Yakup Gövler dedi ki:

    Artisteer programı ile yapılan temalar, WordPress tema standartlarına uygun değildir. Bu nedenle bu tür temaları düzenleyip, adam etmek zordur.
    functions.php dosyasının başında <?php kodunun hemen altına verdiğim kodu ekleyin.

  16. Sercan dedi ki:

    bunu ilk wordpress kullanmaya başladığım 2006 yılında yapmıştım 🙂

  17. Wordpress’e Yeni Yaklaşımlar | Sinerjik Günlük dedi ki:

    [...] Yazı Başlığınızdaki Kelimeleri Etiketlere Otomatik Ekleyin: WordPress’te etiket seçmek, eklemek bazen işkence olabiliyor. Halbuki çoğu zaman da başlıkta geçen kelimeleri etiket olarak ekliyoruz. Elle bu kelimeleri eklemek yerine WordPress’in sizin yerinize otomatik olarak eklemesini ister misiniz? [...]

  18. sinan dedi ki:

    benim temamda functions.php dosyası bulunmuyor ne yapmam lazım ?

  19. Yakup Gövler dedi ki:

    Tema klasörünüzde functions.php adında bir dosya oluşturup, içerisine aşağıdaki kodları yapıştırıp, kaydedin.

    1. <?php
    2. function yg_oto_etiket_ekle($post_id, $post) {
    3.   $tags = explode(" ", preg_replace('/\s+/',' ',$post->post_title));
    4.   wp_set_post_tags($post_id, $tags, true);
    5. }
    6. add_action('save_post', 'yg_oto_etiket_ekle', 10, 2);
    7. ?>
  20. sinan dedi ki:

    çalıştı çok teşekkür ederim. hocam.

  21. Alican dedi ki:

    çok saol

  22. Başlıktaki Kelimeler Etiket Olsun | Mersin Gündemi | Kent Haberleri | MersinForum.Net dedi ki:

    [...] Kaynak [...]

  23. Barış dedi ki:

    Bilgi için çok teşekkürler hocam uzun süredir arıyordum. Bu yaptığımız sistem yeni açtığımız başlıklarda sorunsuz çalışıyor. Fakat önceden açtığımız konularıda bu şekle sokmak için herhangi birşey yapabilir miyiz ?

  24. firari dedi ki:

    Teşekkür ederim Yakup Hocam;
    EyvaALLAH..

  25. İsminizi Yazınız dedi ki:

    harika bir fonksiyon daha, bu gidişler bloğunuzun bağımlısı haline geleceğim:)) çok teşekkürler..

  26. Cevat ÖZTÜRK dedi ki:

    Hocam bu eklentinizi daha önce kullanıyordum. Fakat bu akşam değiştirdim ondan mı oldu yoksa daha önce eklendiğim bir eklentiden mi oldu anlıyamıyorum. Linklere tıklayınca açılmıyor.

  27. Cevat ÖZTÜRK dedi ki:

    Konu başlıklarına tıklayınca hata veriyor. Ancak ben bunu bu akşam farkettim.

  28. Cevat ÖZTÜRK dedi ki:

    verdiği hata ise şu şekildedir. Not Found

    The requested URL /tesekkur-2/ was not found on this server.

  29. JoKe Boy dedi ki:

    $tags = explode(" ", preg_replace('/\s+/',' ',$post->post_title));
    satırını aşağıdaki ile değiştirin.
    $tags[] = $post->post_title . " resimleri";
    $tags[] = $post->post_title . " videoları";
    $tags[] = $post->post_title . " bilmem neleri";
    Bu satırları ihtiyacınıza göre çoğaltıp, kullanabilirsiniz.
    Eğer yukarıdaki satırı değiştirmeden altına bunları eklerseniz de başlıktaki kelimeleri de etiket olarak eklemiş olursunuz.
    Hocam bu verdiğiniz sonuna etiket ekleme, aynı zamanda basınada etiket eklemek istiyorum yani şöle;

    free (Başlık) download

    bunun içinde bi yardımcı olurmusunuz?

  30. Yakup Gövler dedi ki:

    @Cevat Öztürk, kodları silip, deneyin. Eğer problem ortadan kalkıyorsa kodlarımı kullanmayın. Yaptığım denemelerde böyle bir probleme neden olmadığı gibi, kodların yazıların yayımlanmalarıyla da bir ilgisi yok. Ancak temanız artisteer denilen programla yapılmış bir tema olduğundan yanlış bir şekilde kodları eklemiş olabilirsiniz.

  31. Yakup Gövler dedi ki:

    @Joke Boy, başına da ekleme yapmak istiyorsanız.
    if ($tags) wp_set_post_tags($post_id, $tags, true);
    satırından önce
    $tags[] = 'başlıktan önceki' . $post->post_title . 'başlıktan sonraki';
    şeklinde tekrarlayan satırlar oluşturabilirsiniz.

  32. ahmet dedi ki:

    merhaba,wordpress başlangıç bölümünde gelen bağlantılar eklentiler ve wordpress türkiye kısımları hep warning hatalarıyla dolu nasıl düzeltileblinir acaba? hayırlı sahurlar.

  33. Yakup Gövler dedi ki:

    @ahmet, hatanın tamamını görmeden kesin bir şey demek mümkün değil. Ekran görüntüsünü bir yerlere aktarıp, adresini eklersen iyi olur.
    Yönetim paneli, başlangıç bölümündeki hatalar, genelde ilgili sitelere ulaşılamadığında oluşabiliyor. Örneğin, kendi bilgisayarınızda deneme yapıyorsunuz ve internetiniz yoksa RSS kaynağına ulaşılamadığına dair hatalar alırsınız.

  34. altan dedi ki:

    kodları eklediğim zaman
    add_action('save_post', 'yg_auto_tag_append', 10, 2);

    satırında hata veriyor ne yapmalıyım? silince sorun yok.

    hata kodu
    Call to undefined function add_action() in/home/altansga/public_html/wp-includes/functions.php on line 33