WordPress önizleme resmi ekleme (Tek kod, 4 yöntem, Otomatik)

WordPress konusunda bayağı uzun zamandır çalışmalar yapıyorum. Ciddi anlamda çok fazla çalışmasamda ihtiyacım olduğunda yada arada bir hobi amaçlı iş çıkartıyorum. Bazen bu durumlarda elinizin altında devamlı kullanabileceğiniz kodlar yada alet çantaları ararsınız. Bunlardan en önemlilerini bloğumda toparlamaya çalışıyorum zaman buldukça..

Bu sayede önizleme resmi ekleyeceğiniz yere sadece bir php kodu eklemeniz yeterli. Fonksiyonumuz, sistemi tarayarak 4 farklı sorgu ile resim kontrolü yapacak…

Bunu yazarken genelde wordpress kullanıcılarının sıkca sorduğu yada sorması ihtimal konuları ele aldım. Öyle birşey yazayımki herkesin sorusunada kısa yoldan cevap olsun ve aranıp durmasın site site..

Öncelikle yazıya ait önizleme resmini göstermek için hangi yöntemleri kullanabileceğiz onları yazalım:

  1. Görsel yükleden sitemize resim upload ederek (Öne çıkarılmış görseli belirle)
  2. Özel alan belirleyip resim linkini belirterek
  3. Yazı içine resim ekleyerek (ilk resmi alır)
  4. Yada default bir resim belirleyerek (Yukarıdakiler sonuçsuz kalırsa default resim çıkar)

Lafı fazla uzatıp zamanınızı almak istemiyorum. Yukarıdakileri otomatik şekilde yapan kodumuz aşağıda:

<?php echo kuaza_thumb($post->ID,'thumbnail','resimclass'); ?>

İşde bu kadar basit. Yazıya ait bir resim göstermek istiyorsanız yukarıdaki kodu loop sorgusunun içinde bir yere ekleyin yeterli.

İçinde bir kaç tanım mevcut bunları kendiniz resmi göstereceğiniz yere göre değiştirebilirsiniz. Örneğin kod içerisindeki thumbnail kısmını değiştirerek göstermek istediğiniz resmin boyutunuda artırabilirsiniz. Bu alana gelebilecek tanımlar bunlar:

  • thumbnail
  • medium
  • large
  • full

Bunlara ek olarak sizde farklı boyutlar ekleyebilirsiniz tabi (add image size yöntemi ile). Bu ayar sadece görsel yükle kısmından kendi hostunuza upload ettiğiniz ve öne çıkarılmış görsel belirleolarak seçtiğiniz resimlerde geçerli olacak.

Hemen yanında ki resimclass kısmıda, resim koduna eklemek istediğiniz css class kodunun ismidir. Eğer herhangi bir class eklemeyecekseniz boş bırakabilirsiniz. Bu durumda resim class ‘ı kendi wordpress ‘in default class isimlerini alır ki bu bu default gelen class ayarıda görsel yükleden eklenen resimlerde gerçekleşmektedir. Diğer yöntemlerde belirlediğiniz class ismi eklenmektedir. Bu class kısmını resimlere şekil v.s vermek için kullanabilirsiniz.

Konunun kullanım kısmını geride bıraktık, şimdi ise işlemleri asıl yapacak olan, ana fonksiyon kodumuzu temamızın içerisindeki functions.php dosyasında uygun bir yere ekleyelim. Kodların içerisinde her satırı açıklamaya çalıştım, hem mantığını kavrayabilmeniz hemde daha iyi öğrenebilmeniz açısından faydalı olacaktır.

 /* Kuaza tarafindan hazirlanmistir - Blogumu takip edin arkadaslar: makaleci.com */
 /* Konudaki ilk resimi almak icin kullanacagimiz fonksiyon */
function ilkresimal() {

 /* islemde olan konu icin post degiskenini cagiriyoruz */
 global $post;

  /* konu icindeki resimleri ayikliyoruz */
 preg_match_all('/<img.+src=[\'"]([^\'"]+)[\'"].*>/i', $post->post_content, $resimlink);

  /* cikan sonuclardan ilk resmi aliyoruz, eger bos ise resimsonuc degerini 0 yapiyoruz */
 $resimsonuc = (!empty($resimlink[1][0]) ? $resimlink[1][0] : '0' );

  /* cikan sonucu bastiriyoruz... */
 return $resimsonuc;
}

 /* Kuaza tarafindan hazirlanmistir - Blogumu takip edin arkadaslar: makaleci.com */
 /* Onizleme resmi icin bu fonksiyonu kullanacagiz, Fonksiyonu ozel anahtar ismi haricinde degistirmenize gerek yok */
function kuaza_thumb($postid, $boyut = 'thumbnail', $class = '') {

$postid = intval($postid); // kucuk bir intval kontrolu..

 /* One cikarilmis gorsel olarak belirle kismi bos ise burasi calisir */
if(has_post_thumbnail($postid)) {
the_post_thumbnail($boyut, (!empty($class) ? array('class' => $class) : ''));

 /* Ozel alan ile resim eklenmis ise burasi calisir "thumb ismi ozel alan anahtaridir" */
}elseif(get_post_meta($postid, 'thumb', true)!=""){
echo '<img src="'.get_post_meta($postid, 'thumb', true).'" alt="'.get_the_title().'" '.(!empty($class) ? ' class="'.$class.'"' : "").' />';

 /* yukaridakiler bos ise yazidaki ilk resme bakar varsa onu alir */
}elseif(ilkresimal() != '0') {
echo '<img src="'.ilkresimal().'" alt="'.get_the_title().'" '.(!empty($class) ? ' class="'.$class.'"' : "").' />';

 /* yukaridaki 3 secenekte sonucsuz cikarsa default bir resim cikartabiliriz. */
}else{
echo '<img src="'.get_bloginfo("template_directory").'/images/default_resim.jpg" alt="'.get_the_title().'" '.(!empty($class) ? ' class="'.$class.'"' : "").' />';

}

}

Uygulamamızın sonuna geldik. bu kodu tema yazarları, geliştiriciler yada amatör olarak bu işle uğraşan arkadaşlar kolaylıkla kullanabilirler. Mantıksal anlamda daha fazla geliştirilebilirmi yada gerek varmı bilmem ama bence php işlem süresini fazla uzatacak ekstra gereksiz kodlara gerek yok. Bu 4 yöntemde bence yeterli vede uygundur.

Bir yararlı uygulamanın daha sonuna geldik, Kafanıza takılan yada kod ile ilgili sorunlar yaşayan arkadaşlar yorum yazarlarsa sevinirim, böyle bir durumda kodu güncelleyerek yada daha iyi hale getirerek kullanıma sunabiliriz. Herzaman daha iyisi ve pratik olanı için düşünmeye ve paylaşmaya devam……

CEVAP VER

Lütfen yorumunuzu giriniz!
Lütfen isminizi buraya giriniz

This site uses Akismet to reduce spam. Learn how your comment data is processed.