Daha önce WordPress İpucu Dosyası 1 yayınlamıştım. Şimdi bunun biraz daha genişletilmiş halini yazıyorum. Sanırım bu hali bir kaç önemli noktayı açıklığa kavuşturacaktır.
Dikkat: Bu yazı, My WordPress Cheat Sheet adresinde verilen dökümanın Türkçe’ye çevrilmiÅŸ ve biraz daha pekiÅŸtirilmiÅŸ halidir
Tema Yapısı
Eğer iyi bir WordPress teması yapmak istiyorsanız, aşağıdaki dosyalar sırasıyla temanızda olmalıdır. Bunun dışında bir kaç dosya daha olsa da, aşağıdaki dosyaların önemi daha büyüktür.
header.php - sitenin üst kısmı index.php - sitenin orta kısmı (ana kısım) sidebar.php - kenar menü kısmı (sidebar) footer.php - sitenin alt kısmı single.php - tekil yazı sayfası page.php - sayfa kalıbı comments.php - yorum kalıbı search.php - arama içeriği searchform.php - arama formu archive.php - arşiv functions.php - özel fonksiyonlar 404.php - hata sayfaları
The Loop (Döngü)
Bir çok dökümanda ve örnekte The Loop kavramını görmüşsünüzdür. Bahsetmiş olduğum kavram, blogunuzda yazıların gösterilmesini sağlayan bir kod parçasıdır. Bu kod parçasının içerisine, HTML veya PHP kodları yazarak, o kodların yazı döngüsü içerisinde gösterilmesini sağlayabilirsiniz.
Örneğin; index.php dosyası içerisinde, 5 yazı yayınlanıyorsa, bu döngü 5 defa çalıştırılır. Yani arasına eklediğiniz kod 5 yazıda da görünür
Bu döngüyü temel olarak index.php de kullanabilirsiniz, ancak diğer sayfalarda da yazıyı göstermek istediğiniz yere bu kodu kullanacaksınız. (örn. single.php yada page.php)
<?php if(have_posts()) : ?> <?php while(have_posts()) : the_post(); ?> // Göstermek istediğiniz yazılar, kodlar vs... <?php endwhile; ?> <?php else : ?> <?php endif; ?>
Yardımcı Tema Dosyalarını Çağırmak
Bu kodlar temanın diğer dosyalarını sayfada göstermek için kullanılır. Örneğin, temanın üst kısmı olarak belirttiğimiz header.php dosyasını temada göstermek için get_header fonksiyonu kullanılır.
<?php get_header(); ?> <?php get_sidebar(); ?> <?php get_footer(); ?> <?php comments_template(); ?>
Farklı kullanımlarını daha önce yayınlamış olduğum Temada Sayfalara Özel Header, Footer ve Sidebar Kullanımı konusunda görebilirsiniz.
Tema İçindeki Bloginfo Kodları
Bu kodlar blogunuza ait bilgileri göstermekte kullanılır. Bu bilgiler yönetim panelinden değiştirilebilir.
<?php bloginfo('name'); ?> - Blog başlığını gösterir
<?php bloginfo('charset'); ?> - Blogun karakter setini gösterir (Örn: UTF-8)
<?php bloginfo('description'); ?> - Blogun açıklamasını gösterir
<?php bloginfo('url'); ?> - Blog adresini gösterir
<?php bloginfo('rss2_url'); ?> - RSS Adresini gösterir
<?php bloginfo('template_url'); ?> - Kullanılan temanın adresini gösterir (Örn: http://siteadi.com/wp-content/themes/default/)
<?php bloginfo('pingback_url'); ?> - Pingback adresini gösterir.
<?php bloginfo('stylesheet_url'); ?> - Kullanılan temaya ait stil dosyasının adresini gösterir (Örn: http://siteadi.com/wp-content/themes/default/style.css)
<?php bloginfo('wpurl'); ?> - WordPress kurulumunun adresini gösterir
WordPress Koşul Fonksiyonları
Koşul fonksiyonları sitenizi kolayca özelleştirmenize olanak veren basit ancak gerçekten yararlı fonksiyonlardır.
ÖrneÄŸin, anasayfada “Sitemiz yenileniyor…” yazısını göstermek istiyoruz, ancak bu yazının ne sayfalamada ne de baÅŸka bir yerde gösterilmesini istemiyoruz, sadece giriÅŸte gösterilsin istiyoruz. O zaman index, header, footer yada sidebar nerede göstermek istiyorsanız içerisine ÅŸu kodu yazmalısınız:
<?php if(is_home()) { ?>Sitemiz yenileniyor...<?php } ?>
Şimdi diğer koşulları görelim:
is_home() - kullanıcı ana sayfada ise (blogda) is_front_page() - kullanıcı ön sayfada ise (blogda yada açılışta tanımlı başka bir sayfada) is_single - eğer tekil bir yazı gösteriliyorsa is_sticky() - eğer yazı sabit yazı ise is_page() - eğer bir sayfa gösteriliyorsa is_category() - eğer bir kategori gösteriliyorsa is_tag() - eğer bir etiket sayfası gösteriliyorsa
Yukarıda verdiğim kodda olduğu gibi sizde if içerisinde kontrol yaparak gösterimi düzenleyebilirsiniz.
Bu verdiklerim en çok kullanılan koşul fonksiyonları. Diğerlerini de görmek isterseniz, WordPress Conditional Tags sayfasına bakabilirsiniz.
En Yaygın WordPress Fonksiyonları
BildiÄŸiniz gibi WordPress’in temalarda kullanılan bir çok fonksiyonu var. Bunların en çok bilinenlerinin listesi de burada
<?php the_time() ?> - Gösterimdeki yazının, yazıldığı zamanı gösterir <?php the_date() ?> - Bir yazının yada yazıların yazılma tarihini gösterir <?php the_title(); ?> - Gösterimdeki yazının başlığını gösterir <?php the_permalink() ?> - Kalıcı bağlantı linkini gösterir <?php the_category() ?> - Yazının bulunduğu kategoriyi gösterir <?php the_author(); ?> - Yazının yazarını gösterir <?php the_ID(); ?> - Gösterimdeki yazının numarasını (id'sini) gösterir. <?php wp_list_pages(); ?> - Sitedeki tüm sayfaları gösterir <?php wp_tag_cloud(); ?> - Etiket bulutunu gösterir <?php wp_list_cats(); ?> - Sitedeki tüm kategorileri gösterir <?php get_calendar(); ?> - Takvimi gösterir <?php wp_get_archives() ?> - Tarih bazlı arşiv listesi gösterir <?php posts_nav_link(); ?> - Önceki sayfa ve Sonraki sayfa bağlantılarını gösterir <?php next_post_link() ?> - Sonraki yazının bağlantısını gösterir <?php previous_post_link() ?> - Önceki yazının bağlantısını gösterir
WordPress Navigasyon Menüsü
Sayfalar, kategoriler veya her ikisini de içeren bir menü yapabilirsiniz. Her iki şekilde de, bir anasayfa linkine ihtiyacınız olacaktır. Menüler için 2 yol:
Kategori Tabanlı Menü
<ul id="menu">
<li <?php if(is_home()) { ?> class="current-cat"< ?php } ?>>
<a href="<?php bloginfo('home'); ?>">Anasayfa</a></li>
<?php wp_list_categories('title_li=&orderby=id'); ?>
</ul>
Sayfa Tabanlı Menü
<ul id="menu">
<li <?php if(is_home()) { ?> class="current_page_item"< ?php } ?>>
<a href="<?php bloginfo('home'); ?>">Anasayfa</a></li>
<?php wp_list_pages('sort_column=menu_order&depth=1&title_li='); ?>
</ul>
Örneğin bizim sitenin en üst, siyah kısmında sayfa tabanlı menü kullanılmıştır. Onun altındaki kısımda ise, Kategori tabanlı menü vardır.
Bir Kategoriden X tane Yazı Göstermek
Eğer herhangi bir kategoriye ait yazıları listelemek istiyorsanız, listeleme yapacağınız yere yukarıda bahsettiğimiz yazı döngüsünü yerleştirmeli ve yazı döngüsünün üzerine ise aşağıdaki kodu eklemelisiniz.
Örneğin WordPress kategorisinden 10 tane yazı göstermek istiyorsam, yazı döngüsünden (the loop) önce şu kodu ekliyorum:
<?php query_posts('category_name=WordPress&showposts=10'); ?>
Kişisel Tema Dosyaları
Örneğin herhangi bir sayfada kendi php dosyanızı göstermek istiyorsunuz. Bunu sayfada göstermenin (include etmenin) kolay bir yolu var.
Örneğin göstereceğim dosyanın adı wpuzmani.php olsun. O zaman dosyayı göstermek istediğim yere aşağıdaki kodu eklemeliyim.
<?php include (TEMPLATEPATH . '/wpuzmani.php'); ?>
Buradaki TEMPLATEPATH yazısı WordPress tarafından tanımlanmıştır ve tema dizininin yerini belirtir. Yani siz uzun uzun ./wp-content/themes/…/ yazmazsınız
Bu yazıda burada bitmiştir, daha da gelmem
Eğer yazıda bir yanlışım varsa, iletirseniz sevinirim. Ancak uykusuzluk gerçekten kötü bir şey
“WordPress İpucu Dosyası 2” için 16 Yorum var
Çok yararlı bir makale, teşekkürler.
gerçekten çok işime yarıcak tşkler
teşekkürler süper paylaşım temanda cok qüzel basarıların devamını dileirm
Kullandığım studiopress temasıyla sidebarda http://i42.tinypic.com/or45ky.jpg bu ÅŸekile feed adreslerini resimli bir ÅŸekile gösterebiliyorum….Fakat yeni temamda bunu tüm uÄŸraÅŸlarıma raÄŸmen baÅŸaramadım….Convergence teamsıyla bunu nasıl yapabilirim?…
TeÅŸekkürler…
Hocam güzel bilgiler için teşekkürler buradaki kodu uyguladım ancak çalışmadı.
Galeri kategorisine ait son 10 yazıyı yayınlamak istiyorum mesela. Kod bu ancak bunu The Loop ( Döngüler ) içerisine yerleştiremedim galiba.
Yani açıkçası index.php nin gövdesindeki tüm kodları sildiÄŸimizi düşünün ( sidebar – header – footer hariç ) ;
Galeri kategorisine ait son 10 yazıyı döngü ile birlikte index.php ye ;
kodundan sonra hangi şekilde yazarım bunu ayarlarsam çok iyi olacak. Saygılar.
Teşekkürler
Türkiye’de wp temaları üzerine fazla geliÅŸtirme yok ne yazıkki.

Bu alanda önde gelenlerin çoğu Yabancı temaları türkçeleştirerek kullanıyor. Hal durum böyleyken wp alanında bazı konularda eksik kalıyoruz.
SEMİH BU ALANDA YAPTIĞIN PAYLAŞIMLAR İÇİN TEŞEKKÜR EDERİM.
Aslında 0′dan WP TEMA HAZIRLAMA kitapçığı hazırlarsan süper olur bence.
Yaptığın tema sade olurs daha güzel olur bence
Şu sıralar bana öyle birşey lazım o yüzden senden faydalanmak istedim
İnşallah yaparsın
site en çok kullanılanlarda her gün bakıyorum yeni bir şey varmı diye güzel yazı olmuş..
teÅŸekkürler…
Gönderiğim kodlar güvenlik sebebiyle çıkmadı buraya http://paste2.org/p/304532 yazdım..
Resim adresinin doÄŸru olduÄŸundan emin misiniz acaba?
Resim adresi deÄŸil Convergence temasına hiç yerleÅŸtiremedim…Katogoriler sidebarda harman çorma oluyor..
O zaman bunun için, temayı yapan arkadaştan destek almanız gerekicek
css düzenlemelerini de ben yapacak olsaydım, temayı ben satardım dimi ama
Konuyu bu şekilde ele alacağınızı bilseyim hiç yardım talebinde bulunmazdım..
İyi de temaya bir sürü para verip satın almışsınız. Destek istemek sizin hakkınız? Anlayışla karşılamanız lazım; ben hem css, hem html, hem php yardımı isteyen herkese yetişemem ki
Kodlarınız gelmemiş ne yazık ki