WordPress’te If Else Koşulu Kullanımı

Eylül 2018
YouTube'ta Takip Et

WordPress’te if else kullanımı ile kodun belirli durumlarda farklı şekillerde hareket etmesini sağlayabilirsiniz. Örneğin kullanıcı ana sayfadaysa ona şunu göster, kategori sayfasındaysa ve giriş yapmışsa şu sonucu göster gibi kontrollerde bulunabiliyorsunuz. Farklı durumlara dayalı birçok kolaylığı var if else özelliğinin ve öğrenmesi de son derece kolay. Bu makalede koşullu içerikler, nasıl çalıştıkları ve bunları ne zaman kullanabileceğimiz ile ilgili ayrıntılı bir içerik sunmaya çalışacağım.

PHP dilini biliyorsanız If özelliğini mutlaka duymuşsunuzdur. İfadeniz gerçekleşirse bir kodu çalıştırmak ve gerçekleşmezse başka kodu çalıştırmak, hatta o da gerçekleşmezse başka bir kodu çalıştırmak mantığında bir alt yapısı vardır. Bu kodları temanızın php dosyaları üzerinde değişiklik yaparak kullanabilirsiniz.

Örneğin, kullanıcı ana sayfadaysa aşağıdaki kodu sayfasında görüntüleyebilirsiniz. is_home koşulu ana sayfa kontrolüdür.

Şimdi de ID’si 10 olan bir sayfa üzerinde çalışalım. Kullanıcı, ID’si 10 olan sayfaya geldiğinde yine bir mesajın çıkmasını isteyelim.

WordPress temalarının belli sayfaları vardır. İçeriklerin single.php’yi referans alması veya içerik listelemelerinin archive.php’de olması gibi. Onları da belirleyebiliyoruz.

is_page() : page.php’yi referans alan içeriklerde kullanılıyor. Peki bu koşul ile neler yapabileceğimize bakalım.
is_page(30) : ID’si 30 olan sayfadaysanız,
is_page(‘Hakkımda’) : Başlığı hakkımda olan sayfadaysanız,
is_page(‘hakkimda’) : Slug name hakkimda olan sayfadaysanız koşulu ile bu kodu kullanabilirsiniz. Benzer diğer sayfalarda da aşağıdaki kodları kullanmak mümkün.

is_single() : single.php
is_category() : category.php
is_archive() : archive.php
is_tag() : tag.php

Yukarıdaki koşulları ilgili sayfalarda düzenlediğinizde kullanabiliyorsunuz. Örneğin: kullanıcıya Yemek kategorisindeyse bir mesaj görüntülemek isterseniz aşağıdaki kodu category.php dosyasında, mesajın görüntülenmesini istediğiniz yere yazabilirsiniz. Eğer kullanıcı Araba kategorisi gibi harici başka bir kategoriye girerse bu mesaj görüntülenmeyecek, sadece Yemek kategorisine girdiğinde görüntülenecektir.

Eğer bu kurguyu şu şekilde değiştirseydik, kullanıcı Yemek kategorisine girdiğinde Afiyet olsun mesajı alsın ve Araba kategorisine girdiğinde Kemerinizi takın mesajı alsın istersek elseif kodu devreye giriyor, onu da aşağıdaki şekilde kullanabiliyoruz.

Kullanıcının siteye giriş yapıp yapmadığını kontrol ederek içerik görüntülemek ya da kullanıcının kullandığı tarayıcıya göre (mesela Internet Explorer kullanıyorsa) içerik göstermek gibi farklı kullanım alanları var. Kullanımlar sayfanızın ihtiyacına göre değişebilir. Temel mantığı öğrendikten sonra gerisini rahatlıkla halledebilirsiniz.

Gözden kaçırdığım veya eklemek istediğiniz bir şey olursa yorum kısmına yazabilirsiniz.

Kafanıza Takılan Sorular

  • Selamlar. Bir arkadaşım kendi sitesi üzerinde benim WordPress sitem için PHP kullanarak deneme.php oluşturdu. Bu dosya iframe ile benim sitede içerik gösteriyor. Yazdığı deneme.php dosyasını benim siteme atınca “500 Internal Server” hatası alıyorum, ama onun sitesine atıp benim siteye onunsitesi/deneme.php girince takır takır çalışıyor. Sorun nerede olabilir?

    1. Erhan merhaba, anladığım kadarıyla dosya onun sunucusunda çalışıyor. Sen kendi sitende iFrame ile çektirsen bile kaynak ona ait olduğundan çalışmaya devam ediyor. Dosyayı senin siteye atıp çalışmamasının nedeni tahminen, sayfayı kodlarken kendi ayarlarını girmiş olması ile ilgili olabilir. Kendi sunucuna yüklediğin dosyanın CHMOD dosya erişim izinlerini de değiştirmeyi deneyebilirsin. Çözüm olarak bunlar geliyor aklıma.