WordPress’te Her Kategoride Farklı Resim

Sitemdeki yazıların bazıları okuyucularımdan aldığım fikirler sonucu ürettiğim çözümlerden oluşuyor. Yine böyle bir fikir geldi bu akşam. Nasıl WordPress’te her kategoride farklı resim görüntülenmesini sağlayabiliriz? İşte bu soru üzerine basit ama etkili bir teknik geldi aklıma.

İlgili Kod

<?php	$category = get_the_category(); ?>
<img src="<?php bloginfo('template_url'); ?>/images/<?php echo $category[0]->category_nicename; ?>.jpg" />

Yukarıdaki kodun açıklaması şöyle;

  • Öncelikle mevcut kategori bulunur,
  • Kategorinin güzel ismi (nicename) alınır ($category[0]->category_nicename),
  • Bu güzel isim ve sonuna .jpg eklenerek tamamlanan resim temanın images klasöründen çağırılır.

Kullanımı

Öncelikle güzel ismin (nicename) ne demek olduğunun bilinmesi gerekir. Güzel isim kategori isminin Türkçe ve adres satırı için uygunsuz karakterlerden arındırılmış şekline denir. Örneğin Site Eleştirileri kategorisinin güzel ismi site-elestirileri‘dir.

Sitenizdeki her kategori için bir resim hazırlayın ve bu resimlerin isimlerini ilgili kategorinin güzel ismininin sonuna .jpg eklenmiş olarak değiştirin (site-elestirileri.jpg). Kategoriler için resimleri uygun şekilde adlandırdıktan sonra bu resimleri temanızdaki images klasörüne yükleyin.

Artık yukarıda verdiğim kodu sitenize yerleştirdiğiniz zaman o an görüntülenen kategori için hazırladığınız resim görünür. Bu arada malum çözüm en sağlıklı şekilde bir kategoriye veya bir yazıya tıklandığında çalışır. Kodu gerekirse ona göre is_single() vb. kodlarla sadece tek yazı görünümünde veya kategori görüntülenirken çalıştırabilirsiniz. is_home() dediğinizde de anasayfada görünmesini istediğiniz resmi çağırırsınız. Eksik ama yine de örnek olması açısından şöyle bir kodu kullanabilirsiniz.

<?php if(is_home()){	?>

	<!-- Anasayfada gösterilecek resim kodu -->
	<img src="<?php bloginfo('template_url'); ?>/images/resim.jpg" /> 

<?php	} else {	

	$category = get_the_category(); ?>
	<img src="<?php bloginfo('template_url'); ?>/images/<?php echo $category[0]->category_nicename; ?>.jpg" /> 		

<?php } ?>

Not: is_home, is_single gibi koşullar hakkında daha detaylı bilgiye şuradaki makalemden ulaşabilirsiniz.

Benzer Yazılar

yakuter

Erhan Yakut

www.yakuter.com

Genç yaşlarda programlama ile tanıştı ve Delphi ile başladığı programlama macerasına şuanda PHP, SQL, Javascript, AJAX, CSS, XHTML teknolojileri ile devam etmektedir. Elektrik - Elektronik bölümü mezunu olan "yakuter" 2006 yılından itibaren yakuter.com'un yazarlığını yapmaya başlamıştır.

Bu Yazıya Ait Yorumlar

oztecnic

oztecnic
28 Mart 2009

yakuter merhaba,

Güzel bir yazı eline sağlık…

Yazına katkı sunmak adına yazıyorum. Kodun pratikte kullanım alanı ne olabilir? Aklıma site headerında olan ana görselin her kategoride farklı gösterilmesi ya da site arkaplan görselinin değiştirimesi geliyor.

Yalnız bu arkaplan görsel atama işini CSS ile yapabiliriz. O zaman senin belirtiğin güzel-isim şeklinde CSS de yeni bir sınıf hazırlayıp imajı değilde, bu sınıfı çağırmamızla blogumuza güzel bir özellik katabiliriz.

Başka kullanım alanları ne olabilir?

yakuter

yakuter
28 Mart 2009

@oztecnic, her kategoride farklı resim olabileceği gibi bazı kategorilerde sitei 2 sütun değilde 3 sütun şeklinde göstermek isteyebiliriz. Veya bazı kategorilerde yazının başlığının ve özet kısmının görünmesini isterken bazılarında sadece başlıkların listelenmesini isteyebiliriz. Gayet geniş bir kullanım alanı var. Teşekkürler katkın için.

gokmen

gokmen
28 Mart 2009

Yakuter çok tesekkür ederim.
Heytbe com’a da ricada bulunmuştum sağolsun oda ilgilendi.
birçok kişinin işine yaracak mutlaka.
heytbe com un yaptığı kod üzerinde ufak değişiklik yaparak kategorilerin alt sayfalarındada logonun gösterilmesini sağladım..

Kod aşağıda,bir kaç küçük konuda takıldım yine burda çözebiliriz sanırım.

<?php
if (is_home()) {
// Eger anasayfada gorunmesini istediginiz resim var ise...
echo "";
} elseif (in_category('7')) {
// hangi kategoride farklı bir resim goruntulenmesini istiyorsaniz.
echo "";
} elseif (in_category('4')) {
// hangi kategoride farklı bir resim goruntulenmesini istiyorsaniz.
echo "";
} else {
// Eger her iki sayfadada degilsen bu resim gosterilsin...
echo "";
}
?>

Yayınlanan logolara tıklayınca ,logo anasayfadakiyse anasayfaya,
Katagoriler içindeki haberlerdeyse Kategori anasayfasına gitmesi nasıl sağlanır.

yani
<a href=”/”>

kodu üstteki koddaki her kategoriye nasıl uygularım.

Attack

Attack
29 Mart 2009

Güzel fakat bence gereksiz bir eklenti (Bu benim şahsi görüşümdür). Yinede elinize sağlık..

yakuter

yakuter
29 Mart 2009

@Attack, bu bir eklentiden ziyade ufak bir çözüm. Ve bu zamana kadar o kadar farklı istekle karşılaştım ki artık hiçbir şey bana gereksiz görünmüyor çünkü mutlaka ihtiyacı olan birileri oluyor. Zaten kendime göre gereksiz diye sınıflandırsaydım bu günlük bu kadar çok takip edilmezdi.

Kitap özetleri

Kitap özetleri
29 Mart 2009

İllaki birinin ihtiyacı vardır bu eklentiye. :)
Teşekkürler yakuter :)

mesut

mesut
13 Nisan 2009

Gerçekten çok faydalı bir çözüm olmuş. Çok sağolun.
Bir sorum olacak. Benim bir kategorim var. Ve bu kategori ismi sitenin neresinde yayınlanırsa yayınlansın kategori isminin başına koyduğum icon yani resimde gözüksün istiyorum. Bunu nasıl yapabiliriz.
Umarım anlatabilmişimdir.

cyhn

cyhn
25 Nisan 2009

Gayet gerekli bir çözüm, özellikle çok kategorili bloglar için görsel açıdan büyük bir artı olacaktır.

Tabi bizim millet bilgi sahibi olmadan fikir sahibi olmayı pek sever. Sen belki birine lazım olur diye düşün, taşın, test et, uygula. Bu kadar teknik bilgiyi herkes anlayabilsin diye özenle makaleni hazırla, sonra birisi çıksın güzel ama gereksiz desin :) gereksiz kodların bulunduğu sayfaya girip yorum yazabilecek kadar boş insanlara -bu da benim şahsi görüşümdür- rağmen yeni çözümler üretmen dileğiyle…

yakuter

yakuter
25 Nisan 2009

@cyhn, teşekkür ederim desteğin için. Hislerime tercüman olmuşsun :)

mesut

mesut
25 Nisan 2009

Peki benim sorum ne oldu :)

yakuter

yakuter
26 Nisan 2009

@mesut, yukarıda yazılanlarla bunu yapabilirsin. Tabi biraz kod bilgisi lazım :( Umarım özel olarak yardım edecek birisi bulabilirsin çünkü bu şekilde kişisel istekleri yerine getirmek için vaktim olmuyor.

mesut

mesut
26 Nisan 2009

Olsun zahmet edipte yapamayacağını söylemen bile yeterli.Teşekkürler. çalışmalarında başarılar dilerim.

Cenk

Cenk
11 Haziran 2009

Ne kadar işime yaradı anlatamam konularımın başına ülke bayrakları eklemem gerekiyodu burdaki kod yardımıyla eklemiş oldum çok teşekkür ederim açıklayıcı konu için :)

Oktayusx

Oktayusx
19 Haziran 2009

Sağol .. Kullanılabilir bir kod. :) Bloga farklı bir hava katıcaktır .

Özgür

Özgür
05 Ekim 2009

Ellerine sağlık. Ancak kategori ismiyle değilde kategori idsi ile yapılırsa daha güzel olur bence. Böyle türkçe karakterli resim adreslerinde sorunda yaşanmaz =)

yakuter

yakuter
05 Ekim 2009

@Özgür, dediğin de gayet mantıklı ;)

Meyus

Meyus
25 Kasım 2009

Teşekkürler. Çalışmalarınızın devamını dilerim.

Metin METE

Metin METE
29 Aralık 2009

merhabalar, yazı çok güzel eline sağlık yakuter.. yanlız benim bi sorunum var!!! verdiğin kodu denedim ama kategori ID’lerini özellikle dikkat etsemde en sondaki “else” olan sidebar çıkıyor… bir tülü çözemedim! sence nedeni ne olabilir?

yakuter

yakuter
29 Aralık 2009

Metin Bey, malesef sisteminizi ele alıp dikkatli bir şekilde incelemek lazım. Bunu yapacak birisini WordPress-tr.com forumlarından bulabilirsiniz. Veya kodları oraya yazarak cevabını alabilirsiniz. Malesef ben yorumlarımda kod kullanmıyorum.

Özhan

Özhan
22 Şubat 2010

Teşekür ederim…

selami

selami
12 Mayıs 2010

teşekkürler.
şöyle bir sorun var:
“Türkiye” üst kategori, “İstanbul” alt. Yazılar İstanbul kategorisinde, Türkiye kategorisinde hiç yazı yok ama üst kategori olduğu için İstanbul yazıları Türkiye altında da gösteriliyor. ben “turkiye.jpg” diye resmi eklediğimde onu görmüyor, “istanbul.jpg” resmini arıyor. yani üst kategoride resmi gösteremedim. nasıl çözerim?

Osmancan

Osmancan
17 Temmuz 2010

Erhan Bey Paylaşımınız İçin Teşekkürler Bu Kod İle Biraz Değiştirerek Sizin Araçlar Daki Gibi Kategori Listeleme Görüntüsünü Değiştirmek Mümkünmüdür ?

Yani,

<img src="<?php bloginfo('template_url'); ?>/images/<?php echo $category[0]->category_nicename; ?>.jpg" />

Kodu Yerine Css Kodlarını Ve Listeleme Kodlarını Eklesek Sizinki Gibi Bir Görünüm Elde Edebilirmiyiz ?

Rıza GÜVEN

Rıza GÜVEN
06 Eylül 2010

Bu çok güzel teşekkür ederim, yalnız bunu site arkaplanı için nasıl uygulayabiliriz.

Şarkı Dinle

Şarkı Dinle
15 Aralık 2010

güzel bende anasayfada böyle birşey yapmak istiyordum elinize sağlık..

Rıza

Rıza
29 Aralık 2010

Merhabalar bu çok güzel ve tam da aradığımı buldum diyebilirim. Yalnız ben bunu joomla ile yaptığım sitelerde de yapmk istiyorum onun için ne yapmam lazım bu konuda yardımcı olabilir misiniz?

gedop

gedop
12 Ocak 2011

#
// get the first medium image associated to the ad
#

#
// used on the home page, search, category, etc
#

#
if (!function_exists('cp_get_image')) {
#

#
function cp_get_image($post_id = '', $size = 'medium', $num = 1) {
#

#
$images = get_posts(array('post_type' => 'attachment', 'numberposts' => $num, 'post_status' => null, 'post_parent' => $post_id, 'order' => 'ASC', 'orderby' => 'ID'));
#

#
if ($images) {
#

#
foreach ($images as $image) {
#

#
$img_check = wp_get_attachment_image($image->ID, $size, $icon = false);
#

#
$img_check = preg_replace('/title="(.*?)"/','', $img_check);
#

#
}
#

#
} else {
#

#
// show the placeholder image
#

#
if(get_option('cp_ad_images') == 'yes') { $img_check = '<img class="attachment-medium" alt="" title="" src="'. get_bloginfo('template_url') .'/images/no-thumb.jpg" />'; }
#

#
}
#

#
echo $img_check;
#

#
}
#

#
}

İstediğimiz kategori altındaki bütün yazıların thumbnail ve yazı resimlerini tek bir resim ile değiştirmek istiyorum bunu bu kodlarda nasıl yapabilirim. Bazı kategorilerimde 3500 tane aynı resim var. Yani 3500 farklı resim. Eğer bunu tek bir resim yaparsam Böylelikle wordpress i biraz hızlandırmayı düşünüyorm. Yardımcı Olurmusunuz

Kodun devamı
http://www.pastebay.org/113673

Hofboard

Hofboard
31 Mart 2011

Merhabalar..

Ben sitemdeki her kategoride farklı bir arkaplan resmi çıksın istiyorum.. Buradaki metodu denedim ama bir sonuç çıkmadı.. Bazı farklı yabancı kaynaklara baktım şöyle bir metod buldum:

_________________________________________________________
<?php if (have_posts()) : ?>

<?php $cat_obj = $wp_query->get_queried_object(); $cat_id = $cat_obj->cat_ID; ?>

<?php if (in_category('1001') ):
// category 1001 ?>
<style type="text/css">
body {background-color:#000;background-image:url(/images/background.jpg);background-repeat:repeat;}
</style>

<?php elseif (in_category('1002') ):
// category 1002 ?>
<style type="text/css">
body {background-color:#000;background-image:url(/images/background2.jpg);background-repeat:repeat;}
</style>

<?php endif; // end the if, no images for other other categories ?>
—————————————————————————————————–

Fakat buda işimi görmedi ama aşağı yukarı buna benzer birşey olacak sanırım..

Aslında bana sizin verdiğiniz "nicename" metodu daha mantıklı geliyor ama dediğim gibi bir sonuç çıkmadı.. 6 farklı bg resmi hazırlayıp 6 sınında isimlerini oluşturmuş olduğum kategorilerin nicename ismini göre düzenleyip verdiğiniz metodu uyguladım ama başaramadım..

Şu olaya bir el atıp çözüme kavuşturabilir misiniz? :)

Peki ya sizin düşünceleriniz?

Facebook Grubumuz Twitter Wordpress Linked in Google Friendfeed RSS Beslemesi Feedburner RSS

Yakuter web tasarım, yazılım geliştirme, IPhone uygulamaları gibi konular da Üreticy'yi öneriyor.

TAMindir.com - Yeni Programlar

iPadian - Windows

Masaüstünüzü iPad arayüzü şeklinde kullanabilmeniz ve uygulama merkezi sayesinde sunduğu onlarca uyg...

ClipGrab - Windows

YouTube ve diğer popüler çevrimiçi video sitelerinden video indirmek istiyorsanız kullanabileceğiniz...

Elder Scrolls V Skyrim Duvar Kağıtları - Windows

Elder Scrolls V Skyrim için Bethesda Softworks tarafından hazırlanmış duvar kağıtları....

Undelete 360 - Windows

Kaybettiğiniz, yanlışlıkla sildiğiniz veya virüslerden mağdur olduğunuz dosyalarınızı bu programla k...

Knights of the Old Republic 2 Duvar Kağıtları - Windows

Star Wars Knights of the Old Republic 2 oyunu için hazırlanmış en güzel duvar kağıtlarını sizin için...

Abonelik

Yazılan yazılardan ilk siz haberdar olun, yeni yazılar e-postanıza gönderilsin.

yakuter.com © 2006-2010 Erhan Yakut. Site tasarım Cenk Akyıldız - (Tema Bilgisi).
Site içerisindeki içerikler izinsiz kopyalanamaz, alıntı yapılamaz.