WordPress Temanıza Koşullu Mantık Nasıl Eklenir?

Yayınlanan: 2021-02-25

WordPress ile bir web sitesi oluşturmak, hem tasarım hem de işlevsellik açısından yapabilecekleriniz konusunda büyük esneklik sağlar. Ve tema geliştirmede daha derine indikçe, özel bir şey için belirli bir sayfayı, kategoriyi veya gönderi türünü hedeflemeniz gereken zamanlar olduğunu göreceksiniz. Koşullu mantığın işinizi çok daha kolaylaştırabileceği yer burasıdır.

Koşullu mantık, programlama dillerinin (bizim durumumuzda PHP) güçlü bir özelliğidir. Özünde, belirli bir koşulun var olup olmadığını kontrol etmek için kodu kullanabilir ve ardından bu koşul karşılanırsa belirli bir şey yapabiliriz. Bunun basit bir örneği, bir kullanıcının şu anda sitemizin ana sayfasında olup olmadığını kontrol etmek olabilir. Koşullu mantığı kullanarak, bu durumda bir kaydırıcı veya başka bir özel içerik yüklemeyi seçebiliriz.

WordPress ile ilgili olarak, yazılımda yerleşik olarak bulunan ve her türlü senaryoyu test etmemize izin veren bir dizi kullanışlı Koşullu Etiket vardır. İyi belgelenmiştir ve sitenize daha yüksek düzeyde işlevsellik getirmenize olanak tanır.

Bugün, daha yaygın olarak kullanılan birkaç Koşullu Etiketlere ve bunları kendi sitenize nasıl uygulayabileceğinize göz atacağız.

Koşullu Etiketlerin Kullanımına İlişkin Bir Not

Koşullu Etiketler, PHP kodunun parçalarıdır ve sitenizin aktif temasına girmelidir. Bir tema içinde koşullu mantığı kullanabileceğiniz birkaç yer vardır.

Henüz yapmadıysanız, tema dosyalarının nasıl çalıştığına dair bir açıklama için WordPress Şablon Hiyerarşisine aşina olmanız iyi bir fikirdir.

Ayrıca, canlı bir sitede yeni kodu uygulamaya çalışmadan önce, her şeyi test etmek için bir geliştirme (hazırlama) ortamı kurmak en iyisidir. PHP ile yapılan bir yanlış hareketin sitenize korkunç “Ölümün Beyaz Ekranı”nı verebileceğini unutmayın. Bu nedenle, canlı bir sitede çalışmadan önce test etmeye çok dikkat edin.

ev()

Bu, geliştiriciler arasında büyük bir kafa karışıklığına neden olur. Etikete bakarak, sitenizin ana sayfasını kontrol etmek için is_home() kullanılacağını varsayabilirsiniz. Konu bu değil.

Aslında, WordPress panosundaki Ayarlar > Okuma bölümünde ayarlanan, Gönderiler sayfanız olarak atanan sayfayı arar. Varsayılan olarak, WordPress gönderileri listelemek için ana sayfanızı kullanır - ancak çoğu site bunun yerine statik bir ana sayfa kullanma eğilimindedir.

Örneğin, Yazılar sayfanız olarak “Blog” adlı bir sayfa atadıysanız, is_home() bunu arar.

 <?php // If this the Posts page, display a message. if ( is_home() ): echo '<h2>Thanks for visiting our blog!</h2>'; endif; ?>

is_front_page()

Tersine, is_front_page() , statik olup olmadığına bakılmaksızın, sitenizin ana sayfası olarak ayarlanan sayfaya bakar. Kuşkusuz, kendi temalarınızı yaratmayı öğrenirken bu dünyadaki en bariz şey değil. Ancak hangi etiketin kullanılacağını bilmek çok önemlidir.

Bu etiketin güzel yanı, daha sonra ana sayfanız olarak farklı bir sayfa atamış olsanız bile, yine de doğru yeri hedefleyeceksiniz. Sayfaları hedeflemenin daha açık yolları vardır, ancak bu, bir değişiklik olması durumunda sizi koruma altına alır.

 <?php // If this is the home page, show a special message. if ( is_front_page() ) { ?> <h1>Welcome</h1> <?php // Otherwise, show the page title. } else { ?> <?php the_title( '<h1 class="entry-title">', '</h1>' ); ?> <?php } ?>

is_single() ve is_page()

Bu etiketlerin her biri ikili bir işlev gerçekleştirir. is_single() , geçerli URL'nin bir gönderi olup olmadığına bakar. Standart bir blog gönderisi, eki olabilir veya özel bir gönderi türüne ait olabilir.

Benzer şekilde, geçerli URL bir is_page() true değerini döndürür. Varsayılan olarak, her iki etiket de bir sayfanın veya gönderinin çatısı altındaki tüm içeriği hedefler. Bu, birçok Koşullu Etiket arasında ortak bir konudur.

 <?php // Target all posts. if ( is_single() ): echo 'You are on a single post.'; endif; // Target all pages. if ( is_page() ): echo 'This is a page'; endif; ?>

Ancak, bir kimlik veya bilgi ekleyerek belirli bir gönderiyi veya sayfayı hedeflemek için bu etiketleri de kullanabilirsiniz.

 <?php // Target About Us if ( is_page( 'about-us' ) ): ?> <a href="#"></a> <?php endif; ?>

Bir dizi kullanmak, birden çok içerik parçasını hedeflemenize olanak tanır.

 <?php // Target About Us and Contact Us pages. if ( is_page( array('about-us', 'contact-us') ) ): ?> <a href="#"></a> <?php endif; ?>

is_tax() ve has_term()

Taksonomiler, içeriğin bir sitede nasıl düzenlendiği konusunda büyük rol oynar. En yaygın olanlardan ikisi, kendi Koşullu Etiketleri olan kategoriler ve etiketlerdir. Ancak WordPress, kendi taksonomilerimizi oluşturmamızı da sağlar.

Örneğin, siteniz müzik incelemeleri içeriyorsa, "Tür" adlı bir sınıflandırmanız olabilir. Oradan, "Rock", "Hip-Hop" ve "Jazz" gibi bu taksonomide belirli müzik türlerini listeleyebilirdiniz.

is_tax() bir sınıflandırma arşiv sayfasını hedefler. Müzik inceleme örneğimize bağlı kalarak, belirli türlerin her biri için arşiv sayfasında olduğumuzda bu etiket etkinleşir (etkinleşir).

 <?php // Display a message on our Genre archive pages. if (is_tax('genre','rock','hip-hop','jazz') ): echo '<h2>This is a genre archive. Enjoy!</h2>'; endif; ?>

has_term() , ait olduğu taksonomiye dayalı olarak mevcut gönderiyi hedeflemek için kullanılır. Bu, örneğin sitemizdeki her müzik türündeki gönderiler için özel bir grafik eklemek istiyorsak yararlıdır.

 <?php // Show an image for the Rock genre. if (has_term('rock','genre') ): ?> <?php endif; ?>

is_page_template()

Bir temanın şablon hiyerarşisine aşina olduğunuzda, kendi özel sayfa şablonlarınızı oluşturmak isteyebilirsiniz. is_page_template() , kullanılan geçerli sayfa şablonunu hedeflemenize olanak tanır (özel olup olmadığına bakılmaksızın). Herhangi bir sayfa şablonunun kullanılıp kullanılmadığını kontrol edebilir veya belirli bir şablon arayabilirsiniz.

Bununla birlikte, belirli bir sayfa şablonu ararken dikkatli olmalısınız. Bu etiket bir dosya adının varlığını kontrol ettiğinden, şablonun adının değiştirilmesi durumunda koşullu çalışmayı durdurabilir. Herhangi bir dosya adı değişikliğini yansıtmak için kodunuzu güncellemeniz gerekecek.

 <?php // Add a search form to the Services page template. if (is_page_template('services.php') ): ?> <?php get_search_form(); ?> <?php endif; ?>

Tüm Koşullar Karşılandı

Bu, koşullu mantığın nasıl kullanılabileceğine dair kısa bir giriş olsa da, daha fazlasını öğrenmek için iştahınızı açacağını umuyoruz.

Koşullarda ustalaştıktan sonra, sitenizi başka türlü neredeyse imkansız olacak şekilde özelleştirebileceksiniz.

Bir CMS kullanmanın tüm avantajlarından yararlanmaya devam ederken, temanızın görünümü ve düzeni üzerinde size hassas bir kontrol verebilirler.