Özellikle kategorilerle ilgili eklenti/bileşen yazarken, kategorilerin listesini elde etmek isteriz. Tabi ki bu listede sadece kategori adlarının değil de başka bilgilerin de olmasını, hatta bazen özelleştirdiğimiz bir liste elde etmek isteriz. Bunu yaparken kullanacağımız fonksiyonların başında şüphesiz get_categories fonksiyonu geliyor. Bu fonksiyon ile ilgili WordPress Codex'teki yazının Türkçe çevirisini yazımın devamında bulabilirsiniz.
Açıklama
Girilen parametrelere uyan kategorileri bir nesne dizisi olarak döndürür. Parametreler wp_list_categories fonksiyonu ile hemen hemen aynıdır ve hem sorgu ifadesi olarak hem de dizi olarak girilebilir.
Kullanım
<?php $categories = get_categories(parametreler); ?>
Örnekler
Fonksiyonun kullanımına ilişkin çeşitli örnekler.
Varsayılan Kullanım
Varsayılan kullanımdaki parametreler ve varsayılan değerleri.
- <?php $defaults = array('type' => 'post',
- 'child_of' => 0,
- 'orderby' => 'name',
- 'order' => 'ASC',
- 'hide_empty' => true,
- 'include_last_update_time' => false,
- 'hierarchical' => 1,
- 'exclude' => ,
- 'include' => ,
- 'number' => ,
- 'pad_counts' => false);
- ?>
Açılır Kutu
Aşağıda geçmiş olayları göstermek için kullanılan bir kategoriye ait, alt kategorilerin listelendiği bir açılır kutunun nasıl yaratılacağı yer almaktadır. Aylık arşivlerin oluşturulmasında kullanılan wp_get_archives fonksiyonuyla aynı işi yapmaktadır.
Alt kategorisini göstermek istediğiniz kategorinin id'si 10 olsun ve kategorinin kısa adı "arsiv" olsun. Bu kategorinin alt kategorilerini açılır kutu şeklinde gösteren koda aşağıdan ulaşabilirsiniz.
- <select name="event-dropdown" onchange='document.location.href=this.options[this.selectedIndex].value;'>
- <option value=""><?php echo attribute_escape(__('Select Event')); ?></option>
- <?php
- $categories= get_categories('child_of=10');
- foreach ($categories as $cat) {
- $option = '<option value="/category/archives/'.$cat->category_nicename.'">';
- $option .= $cat->cat_name;
- $option .= ' ('.$cat->category_count.')';
- $option .= '</option>';
- echo $option;
- }
- ?>
- </select>
[
Parametreler
type: (metin) Kategorinin türü.
- post - yazı kategorisi (varsayılan)
- link - bağlantı kategorisi
child_of: (tamsayı) Sadece, ID numarası verilmiş olan kategorinin alt kategorilerini gösterir. Bu parametre için varsayılan değer yoktur. Eğer bu parametre kullanılırsa, hide_empty parametresi false değerini otomatik olarak alır.
orderby: (metin) Kategorileri ID ya da ismine göre sıralar. Varsayılan kategori ID'sine göre sıralamadır. Alabileceği değerler ID (varsayılan) ve name (isim)
order: (metin) Kategorilerin sıralama türü (artan ya da azalan). Varsayılan artan sıralamadır. Alabileceği değerler ASC (varsayılan - artan), DESC (azalan)
hide_empty: (mantıksal) Yazısı olmayan kategorileri gösterir/göstermez. Varsayılan 'true' (varsayılan - boş kategoriler gizlenir). Alabileceği değerler 1 (true - varsayılan), 0 (false)
include_last_update_time: (mantıksal) Ne yaptığı kesin belli değil. Alabileceği değerler 1 ve 0 (varsayılan)
hierarchical: (mantıksal) Alt kategorileri girdili şekilde listeler. Alabileceği değerler, 1 (true - varsayılan), 0 (false)
exclude: (metin) Bir ya da daha fazla kategoriyi listeden çıkartmayı sağlar. Bu parametre kategori ID'lerini aralarında virgül (,) ile ayrılmış olarak alır. Örnek için wp_list_categories
include: (metin) Sadece belli kategorilerle ilgili bilgileri almak için kullanılır. Bu parametre kategori ID'lerini aralarında virgül (,) ile ayrılmış olarak alır. Örnek için wp_list_categories
number: (metin) Gösterilecek kategori sayısı.
pad_counts: (mantıksal) Yazı/bağlantı sayısı hesaplanırken, alt kategorilerinkinin de dahil edilip, edilmeyeceğini belirler. Alabileceği değerler 1 (true) ve 0 (false - varsayılan)
Bu yazının kısa bağlantısı http://www.yakupgovler.com/?p=367.
Yazılarımı RSS aboneliği ile takip edebilir, yeni yazılarıma kolaylıkla ulaşabilirsiniz. Bunun için ise RSS adresimi kullanabilirsiniz.
Tarih: 12 Ocak 2009 Saat: 18:03
Kategorilere rss nasıl ekleyebilirim?.. Benim Kategorilerim bu şekilde.. http://pic.leech.it/i/11e73/6f96f715a01.jpg
Bu şekilde kategori ve alt kategorilere nasıl rss ekleyebilirim? http://pic.leech.it/i/a0e18/1250398d112.jpg
(Tema StudioPress Theme http://www.dailyblogtips.com/wordpress-themes/ )..Wordpress 2.6.5..
Teşekkürler
Tarih: 12 Ocak 2009 Saat: 22:13
Verdiğiniz ikinci resimi tam anlayamadım. Resimdeki RSS ikonlarına tıklandığında kategorinin RSS adresine gidecek, kategori ismine tıklandığında ise kategorideki yazılar mı gösterilecek? Eğer böyleyse http://www.yakupgovler.com/?p=217 adresindeki yazıda bahsedilen feed=RSS parametresi ve feed_image parametlerini kullanarak ve resmi de CSS ile konumlandırarak istediğinize ulaşabilirsiniz. Ayrıca yazının İngilizcesindeki örnekleri de incelemenizi tavsiye ederim. Yok istediğiniz sadece kategorilerin feed (besleme) adreslerini almak ise
get_category_feed_link($cat_id, $rss_tipi);
fonksiyonunu kullanarak kategori ID'sini bildiğiniz bir kategorinin istediğiniz tipteki RSS adresini alabilirsiniz. Aşağıdaki gibi kullanırsanız RSS2 tipinde besleme adresini alabilirsiniz.
get_category_feed_link(10);
ID'si 10 olanın RSS adresini verir.
Tarih: 15 Ocak 2009 Saat: 21:51
Bu şekilde değiştirerek http://pic.leech.it/i/caf9a/12d419d48381.jpg bu şekilde RSS ekledim fakat görüntü pek hoş durmadı..
feed=RSS yerine
feed_image=/images/rss.gif bunu denedim fakat gerekli CSS düzenlesini yapamadım.. http://pic.leech.it/i/a0e18/1250398d112.jpg Bu şekilde bir görüntü elde etmek için ne yapmalıyım...
Teşekkürler
Tarih: 15 Ocak 2009 Saat: 21:59
Sanırım güvenlik sebebiyle kodlar çıkmıyor..Kodları buraya ekledim..
http://tinypaste.com/e6fce
Tarih: 15 Ocak 2009 Saat: 23:04
Ne yazık ki yaptığım denemelerde kategori sayılarıyla birlikte istediğiniz görüntüyü sağlatamadım. Bahsettiğiniz görüntüyü eğer bir siteden edindiyseniz, site yöneticileriyle iletişime geçmenizi öneriyorum, belki kullandıkları özel bir bileşen vardır.
Kategorilerin listelenmesini sağlayan fonksiyon wp-includes/classes.php içerisinde function start_el fonksiyonu içerisinde yer alıyor. Belki orada düzenleme yaparak bir yerlere varabilirsiniz.
Tarih: 16 Ocak 2009 Saat: 02:13
Hocam CSS de değişiklik yapmadan sadece şu kodları http://tinypaste.com/bbdd4 sidebara girdim..
Görüntü bu http://pic.leech.it/i/65061/86d29a5725c1.jpg Rss de bi sorunda yok..Fakat rss image nasıl sağa çekebilirim?..wp-includes/classes.php içerisinde function start_el fonksiyonu içerisindemi acaba?..
Tarih: 16 Ocak 2009 Saat: 08:29
Önceki mesajımda dediğim gibi kategorileri o şekilde listeleme işini yapan fonksiyon start_el fonksiyonu.
Bu fonksiyonu http://tinypaste.com/c6822 adresindeki gibi değiştirirseniz işinizi görürsünüz. Kod WP 2.7 sürümünden alınmıştır.
Tarih: 16 Ocak 2009 Saat: 23:13
Yardımlarınız için çok teşekkür ederim...
Tarih: 17 Ocak 2009 Saat: 18:34
Hocam bir sorunla karşılaştım anasayfada sorun yok
http://pic.leech.it/i/2f93b/7904829e4c1.jpg
Fakat kategori ve konulara girnce böle bi sorun var...
http://pic.leech.it/i/ccd19/08a47783asterixetl.jpg
Öneriniz varmı acaba?
Tarih: 17 Ocak 2009 Saat: 18:43
Şimdi fonksiyonda şöyle bir durum var, eğer bir kategori tıklanmışsa bu durumda tıklanan kategorinin hangisi olduğunu işaretlemek için current-item diye bir sınıf ekleniyor bağlantılara. Muhtemelen düzenleme yaparken bunu gözardı etmiş olabiliriz. Yukarıda verdiğim fonksiyonun şu anki içeriğini tinypaste'e aktarıp, bağlantısını verirseniz, ben de bir deneme yapabilirim.
Düzenleme: wp_list_categories fonksiyonunu aşağıdaki gibi çağırın.
wp_list_categories('orderby=name&show_count=1
&feed=1&feed_image=http://www
.siteadi.com/rss.gif&title_li=');
olarak çağırın. Yani feed=1 ve resim adresi olarak siteadi.com/rss.gif gibi kesin adresleme kullanın. Koddaki tek tırnakları (') düz hale getirmeyi unutmayın.
Tarih: 17 Ocak 2009 Saat: 22:11
Hocam localde farklı sitemde deneme farklı oluyormuş..
http://tinypaste.com/13206
rss.png image yide kullandığım temadan alıp ftp den ana dizindeki images klasörüne attım..
8 nolu mesajınızdaki verdiğiniz fonksiyonu localde denedim fakat mevcut görüntüden daha iyi olmadı o yüzden hiç değişiklik yapmadım..
Tarih: 05 Şubat 2009 Saat: 21:47
Yakup Bey Merhaba,
Elimde bir tema var ve oluşturduğum ketegorilere tıkladığımda caloop.php içinde ayarlanmış sabit bir ketegorinin yazıları cıkıyor. Ve altında benzer başlıklar benzeri son yazılan yazıları yine manuel elle eklenmıs sabit bir kategori ID si ile gosteriyor. Ben ise o kategoride hangi yazılar varsa onları göstermek istiyorum. Başka bir temadan alıyorum fakat çalışmıyor. Yardım edebilirmisiniz. Seçim yapılan kategoriye ait konu başlıklarını listeleyebileceğim bir php kodu verirmisiniz. Şimdiden tşkler.
Tarih: 05 Şubat 2009 Saat: 23:11
Varsayılan tema içerisindeki archive.php dosyasında bu kodlar bulunmaktadır. Oradan bulabilirsiniz.
Tarih: 07 Şubat 2009 Saat: 21:07
bu siteyi inceleyin derim mutlaka...
ben bu siteyi daha faydalı buldum yani daha gelişmiş, ama yazınız sayesinde böyle servislerden haberim oldu teşekkürler...
http://www.copytaste.com/d46463d