05 Nisan 2009

Yazının İlk Resmini Alma

WordPress Yorum Ekle

Artık çoğu temada yazıların yanlarına özel alanlar kullanılarak resimler ekleniyor. Ben buna gıcık oluyorum. Her yazı eklemede gidip de özel alanı doldurmak resmen işkence. Ben yazılarımın başına mümkün olduğunca, normal resim ekleme bölümünden resim ekliyorum. İleride eğer bu resimleri kullanmak isteyeceğim bir temaya geçersem, bu resimleri alabileceğim bir yöntem gerekecek. Bari şimdiden bu yöntemi bulup, siteme yazayım, benim gibi düşünenlere yardımcı olayım dedim. Ha kodu farklı amaçlar için de kullanabilirsiniz, örneğin resim eklediğiniz eski yazılarınızda özel alan yoksa, özel alan yerine yazı içerisindekini gösterebilirsiniz.
Aşağıdaki kodları temanızın Tema fonksiyonları (functions.php) dosyasına uygun şekilde eklediğinizde 'ilk_resmi_al' isimli bir fonksiyon elde etmiş olursunuz. Bu fonksiyonu Loop (döngü) içerisinde kullandığınızda ise yazının ilk resmini alabilirsiniz.

  1. function ilk_resmi_al() {
  2.   global $post, $posts;
  3.   $ilk_resim = '';
  4.   ob_start();
  5.   ob_end_clean();
  6.   $output = preg_match_all('/<img.+src=[\'"]([^\'"]+)[\'"].*>/i', $post->post_content, $matches);
  7.   $ilk_resim = $matches [1] [0];
  8.  
  9.   if(empty($ilk_resim)){  //Yazıda resim yoksa
  10.     $ilk_resim = "http://www.siteadi.com/images/varsayilan_resim.jpg";
  11.   }
  12.   return $ilk_resim;
  13. }

Bu fonksiyonu kullanmak için ise aşağıdaki kodları kullanabiliriz.

  1. echo ilk_resmi_al();
  2. //Çıktı: http://www.siteadi.com/wp-content/uploads/resminadi.jpg

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

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ının İlk Resmini Alma” yazısı için 14 Yorum

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

  1. Salih dedi ki:

    Hocam ben birşey düşündümde uygulayamadım yardımınıza ihtiyac duyaraktan bu yorumu yazıyorum hani temalarımız aynıda diyorum bu resimlerin etrafını çerçevelesek daha şık görünüm almazmı hani yorum gravatar resimlerinde turuncu çizgi türünde umarım anlatabilmişimdir bunun için ne yaparım şimdiden yardım için teşekkür..!

  2. ugur eydemir dedi ki:

    teşekkürler yakup bey

  3. Yakup Gövler dedi ki:

    @Salih, temanızın style.css dosyasına aşağıdaki kodları ekleyin.
    .entry img {
    margin:3px; /* Yazı ve yorum kenarından 3 piksel uzaklaştırdım */
    background-color:white; /* Arkaplan rengini beyaz yaptım */
    border:1px solid #FF6600; /* Turuncu renkte 1 piksel kalınlığında bir kenarlık ekledim */
    padding:3px; /* Kenarlıkla resim arasına boşluk bıraktım böylece arada beyaz alan oluştu */
    }

  4. Sesli Site dedi ki:

    Yok hocam ben herhalde anlatmak istediğimi dile getiremedim özür dilerimde tekrardan özetliyim konularımızın yanındaki resimleri diyorum konu resimlerinide gravatar gibi çerçevelesek onu istedim onunda kodunu ulaştırırsanız sevinirim hocam.. Umarım şimdi doğru anlatmışımdır :)görüşürüz.

  5. Yakup Gövler dedi ki:

    Önceki yorumumdaki kodu denediniz mi?

  6. wordpress dedi ki:

    buda işinizi görebilir post edilmiş yazıya ait kaç adet resim görünsün hangi type görünsün diyebilirsiniz

    function tekResim($size=medium) {
    if ( $images = get_children(array(
    'post_parent' => get_the_ID(),
    'orderby' => 'ID ASC',
    'post_type' => 'attachment',
    'numberposts' => 1,
    'post_mime_type' => 'image',)))
    {
    foreach( $images as $image ) {
    $attachmenturl=wp_get_attachment_url($image->ID);
    $attachmentimage=wp_get_attachment_image( $image->ID, $size );

    echo $attachmentimage;
    }
    } else {
    echo "";
    }
    }

  7. Yakup Gövler dedi ki:

    Katkınız için teşekkürler.
    Her zaman resim ekle düğmesini kullanarak resim eklemeyebiliyoruz. Bu durumda sizin kodunuz işe yaramayabilir.

  8. Sesli Site dedi ki:

    Hocam tamamdır işlemi başarıyla gerçekleştirdim gravatar resminin kodundan önce eklemeliymişim en alta ekledimmi olmuyor davayı çaktım elleriniz dert görmesin teşekkür ediyorum.. Başarılarınızın devamını diliyoruz YAKUP HOCAM

  9. wordpress dedi ki:

    haklısın

  10. neyazsak dedi ki:

    Çok güzel bir bilgi birde şunu anlatırsanız çok sevinirim.Örneğin resmi aldık fakat küçülünce tipi değişti o resmi istediğimiz boyutta otomatik kesse.Diyelim 50px lik kare şeklinde olacak resmimiz 220x130 ve bu tam karede değil.Bunu nasıl yaparız.

  11. Yakup Gövler dedi ki:

    Kesse derken boyutunu küçültme mi yoksa kırpma işlemi yapması mı?
    Kırpma işleminde resmin üst sol köşesinden başlayarak 50x50px olan kısmını mı almak istiyorsunuz? Mümkünse örnek bir resimle anlatabilirseniz sevinirim.

  12. neyazsak dedi ki:

    Tam olarak anlatamadım 🙂 kusura bakmayın.Örnek olarak blog.wolkanca.com daki önizleme resimleri buna örnek sayılabilir.Hem ilk resmi çekecek hemde yazıyı küçültme değilde kırpma işlemi yapacak.

  13. PuMaX epideMiC dedi ki:

    Temamda özel alanlardan eklenen thumbnail için bir kodlama yoktu, bunu kullandım tıkır tıkır çalışıyor. Çok teşekkürler.

  14. joyologo design shop 2.0 dedi ki:

    Bu yazınızı şimdi farkettim. bugunku yazınızda http://www.yakupgovler.com/yazinin-ilk-resmi-yaziya-baglanti-olsun.html
    sorumu netleştirmeye çalışacağım:
    yapmak istediğim şey:
    1. yazılara eklenen ilk resmi almak,
    2. bu resmin thumb, medium veya large şeklini almak
    3. ve eğer yazıya hiç resim eklenmemişse her hangi bir "default.jpg" imaj kullanmadan normal yazı şeklinde bırakmak
    yardımcı olursanız çok sevinirim, teşekkürler..