Merhaba arkadaşlar, bu yazı serisinde sizlere wordpress tema geliştirmesi yaparken gerekli olabilecek en temel wordpress kod parçalarını ve ihtiyacınız olabilecek bir kaç fonksiyon paylaşacağım.
Paylaşacağım kodlar benim bizzat kullandığım kodlardır ve kodların birçoğunun alternatif kullanımları mevcuttur.


Header Çağırma (Tema içerinde yer alan header.php dosyamızı çağırmak için)

 <?php get_header(); ?>

Footer Çağırma (Tema içerinde yer alan footer.php dosyamızı çağırmak için)

 <?php get_footer(); ?>

Sidebar Çağırma (Tema içerinde yer alan sidebar.php dosyamızı çağırmak için)

 <?php get_sidebar(); ?>

WordPress sitemiz hakkında bilgi almak için;

get_bloginfo()
Sitemizin temel bilgilerini çekmek için kullanılır.
Diğer bir kullanım şekli bloginfo() şeklindedir. Direk ekrana değeri yazdırır.

<?php 
 echo get_bloginfo('name');
 // Sitemizin adını yazdırır ( Örn: Blog Sitem )
?>
<?php 
 echo get_bloginfo('description');
 // Sitemizin açıklamasını yazdırır
?>
<?php 
 echo get_bloginfo('url');
 // Sitemizin linkini yazdırır ( Örn: http://www.sitem.com )
?>
<?php 
 echo get_bloginfo('template_url');
/* 
 Temamızın bulunduğu linki yazdırır
 Örnek Kullanımı;
 <link rel="stylesheet" href="<?php echo get_bloginfo('template_url'); ?>/assets/css/style.css" />
 // Temamızın "assets/css" klasöründe yer alan stil dosyasını çağırmak için kullandık. 
*/
?>
<?php 
 echo get_bloginfo('charset');
 // Sitemizin karakter kodunu yazdırır
?>
<?php 
 echo get_bloginfo('version');
 // WordPress versiyonunu yazdırma
?>
<?php 
 echo get_bloginfo('language');
 // Sitenin dilini yazdırma
?>

Başka neler var diye soracak olursanız sizi şu linke alalım.


Loop (Yazı Döngüleri)

Yazı döngüleri oluşturmak için temelde 2 yöntem vardır. Bunlardan biri sorgu kullanmadan standart loop işlemi, diğer yöntem ise sorgu oluşturmak.
Ben sorgu oluşturarak döngüleri kullanıyorum ve bu yöntemi tavsiye ediyorum ama wordpress geliştirmeye yeni adım atan arkadaşlar standart loop işlemini kullanabilirler, işlerini görecektir.

Standart bir loop örneği:

<?php
if(have_posts()): // Eğer yazı var ise
while(have_posts()): the_post(); // Yazılar ile döngü oluştur

// Yazılarımızı listeliyoruz.

endwhile; // Döngümüz bitiyor
endif; // Bitiş
?>

Sorgu ile oluşturulmuş loop örneği:

<?php
$args = array_merge(array( 'post_type' => 'post', 'posts_per_page' => 10, 'order' => 'DESC', 'orderby'=> 'id', )); // Sorgu parametrelerimiz
$loop = new WP_Query( $args ); // Sorgu parametreleri ile döngü oluştur
if($loop->have_posts()): // Eğer sorgudan gelen yazı var ise aşağıdaki işlemleri yap
while($loop->have_posts()): $loop->the_post(); // Döngüyü başlat

// Yazılarımızı listeliyoruz.

endwhile; // Döngümüz bitiyor
endif; // Bitiş
?>

Sorgu oluşturarak loop işlemi yapmanın en büyük avantajı, döngülere sorgu oluştururken kullandığımız parametreler ile kişileştirme yapabilmemizdir.
Örneğin yukarıdaki örnekte yer alan sorgu, yazılarımızı ID’lerine göre büyükten küçüğe doğru sıralayarak sadece 10 adet listeleme yapacaktır.
Yukarıdaki örnekte kullandığımız parametreleri açıklamak gerekir ise;
‘post_type’ : Yazı tipimizdir. Default olarak ‘post’ tur.
‘posts_per_page’ : Listeleme yapılacak içerik sayısı.
‘order’ : Sıralama şekli (ASC, DESC)
‘orderby’ : Sıralamada kullanılacak değer (Yazı adı, yazı yayınlanma tarihi, yazı ID’si gibi değerler)

Sorguda kullanılabilecek onlarca parametre vardır. Bu parametrelerin tüm listesine şu linkten ulaşabilirsiniz. (Yakın bir zamanda yazacağım yeni yazımda bir çok loop örneği ile beraber bir çok parametreyi de açıklamayı düşünüyorum)

Yazı döngüsü içinde kullanabileceğimiz fonksiyonlar;

<?php 
 the_title();
 // Yazımızın başlığını yazdırır.
?>
<?php 
 the_content();
 // Yazımızın tüm içeriğini yazdırır.
?>
<?php 
 the_excerpt();
 // Yazımızın özet kısmını yazdırır.
?>
<?php
 the_permalink();
 // Yazımızın linkini yazdırır
?>
<?php 
 the_post_thumbnail();
 // Yazımızın Öne Çıkan Görselini yazdırma (HTML <img> tag'ı ile beraber)

 the_post_thumbnail_url();
 // Yazımızın Öne Çıkan Görselinin sadece linkini yazdırma (HTML <img> tag'ı olmadan)

 $thumbnail_url = wp_get_attachment_image_src(get_post_thumbnail_id(get_the_ID()), 'full');
 /*
 Yazımızın Öne Çıkan Görselinin Link, yükseklik ve genişlik boyutunu alma. (Eğer görselin boyutları sizin için gerekli değil ise diğer yöntemleri kullanabilirsiniz)
 Kullanım Örneği:
 <img src="<?php echo $thumbnail_url[0]; ?>" width="<?php echo $thumbnail_url[1]; ?>" height="<?php echo $thumbnail_url[2]; ?>" />
 */
?>
<?php /* Yazıya ait kategorileri çağırma */
$categories = get_the_category(post_id); 
/* Yazıya ait tüm kategorileri çağırdık. Yazı döngülerinde "post_id" değerini girmeniz zorunlu değildir. */

/* Kategorileri yazdırma örneği */
foreach($categories as $category){
 if(end($categories)->term_id == $category->term_id){
   echo '<a href="'.get_category_link($category->term_id).'" title="'.$category->name.'">'.$category->name.'</a>';
 }else{
   echo '<a href="'.get_category_link($category->term_id).'" title="'.$category->name.'">'.$category->name.'</a>, ';
 }
}
<?php /* Yazıya ait etiketleri çağırma */
$tags = get_the_tags(post_id); 
/* Yazıya ait etiketleri çağırdık. Yazı döngülerinde "post_id" değerini girmeniz zorunlu değildir. */ 

/* Etiketleri yazdırma örneği */
foreach($tags as $tag){ 
 if(end($tags)->term_id == $tag->term_id){
   echo '<a href="'.get_tag_link($tag->term_id).'" title="'.$tag->name.'">'.$tag->name.'</a>';
 }else{
   echo '<a href="'.get_tag_link($tag->term_id).'" title="'.$tag->name.'">'.$tag->name.'</a>, ';
 }
}
?>
<?php 
echo get_the_time('d l Y, Y', $post->ID); // Çıktı Örneği: 01 Ocak 2018, Pazartesi
/* Yazı yayınlanma tarihini yazdırma */

echo human_time_diff( get_the_time('U'), current_time('timestamp') ) . ' önce';
/* Yazı yayınlanma zamanını " X zaman önce " şeklinde yazdırma */
?>

Yazar hakkında bilgi alma

<?php 
 $author = get_the_author_meta(user_id); 
 /* Yazarın bilgilerini çektik. 'user_id' değişkeni yazı döngülerinde zorunlu değildir. */

 /* Kullanım Örnekleri */
 echo $author->ID; /* Yazarın ID'si */
 echo $author->display_name; /* Yazarın görünen adı */
 echo $author->user_email; /* Yazarın eposta adresi */
 echo $author->first_name; /* Yazarın adı */
 echo $author->last_name; /* Yazarın soyadı */
 echo $author->description; /* Yazar hakkında (biyografi) */
 echo $author->user_url; /* Yazarın sayfası */
?>

get_the_author_meta() fonksiyonu hakkında daha fazla bilgi almak için sizi şuraya alalım.