WordPress'te Koşullu Etiketler Nasıl Kullanılır?
Yayınlanan: 2020-06-09WordPress ile ilgili en sevdiğim şeylerden biri, geliştiriciler olarak işimizi büyük ölçüde basitleştiren birçok işlev içermesidir. Örneğin, bir HTML etiketi özniteliğine güvenli bir şekilde eklenebilmesi için metinden kaçan esc_html veya bir HTML sayfasına güvenli bir şekilde dahil edilebilmesi için metinden kaçan esc_attr gibi işlevleri düşünün. Veya bir kullanıcıdan aldığımız verileri sterilize etmemiz gereken bazı işlevlere bir göz atın: sanitize_text_field , sanitize_textarea_field veya sanitize_email . Bu iyi tanımlanmış işlevlere o kadar alışıyorsunuz ki, WordPress alanı dışında bir şey geliştirmeniz gerektiğinde ve artık mevcut olmadıklarını keşfettiğinizde onları gerçekten özlüyorsunuz!
WordPress üzerinde geliştirme yaparken elimizde olan işlevler koleksiyonu inanılmaz derecede büyüktür. Ve onlara ne kadar aşina olursak, yüksek kaliteli kod yazmak o kadar kolay olur.
Bugün size WordPress'teki koşullu etiketlerden bahsetmek istiyorum: ne oldukları, nasıl kullanılacağı, nelerin yanıltıcı olabileceği ve neden bu kadar faydalı oldukları. Bir eklenti veya tema geliştiricisiyseniz ve bunları henüz bilmiyorsanız, bu gönderiyi kaçırmayın.
WordPress'in Koşullu Etiketleri Nelerdir?
Koşullu etiketler, sonucu bir boole değeri olan (yani true veya false olan) WordPress'te tanımlanan işlevlerdir. Bunlar, oluşturmak üzere olduğumuz içeriğe dayalı olarak koşullu kararlar vermek için hem eklentilerimizde hem de temalarımızda kullanabileceğimiz işlevlerdir.
Koşullu etiketleri harika yapan şey, genel olarak adlarının açıklayıcı olması ve anlaşılması çok kolay bir kodla sonuçlanmasıdır. Örneğin, eklentinizde is_sticky koşullu etiketini kullanırsanız, WordPress döngüsünün içindeyken yapışkan bir gönderiyi işliyorsak, açıkça true değerini döndürür. Semantiği hakkında hiç şüphe yok, değil mi?
Birkaç örnekle başlamadan önce, koşullu etiketlerin yalnızca WordPress ziyaretçinin hangi içeriği istediğini belirlediğinde kullanılabileceğini lütfen unutmayın. Onları daha önce kullanmaya çalışırsak, sonuçları her zaman false olacaktır. Başka bir deyişle, bunları yalnızca posts_selection eylemi çalıştırıldığında kullanabiliriz.
En Yaygın Koşullu Etiketler
WordPress'teki koşullu etiketlerin çoğu is_ ile başlar, çünkü "blah blah mı?" gibi bir sorunun cevabı. bir boole değeridir: "evet" veya "hayır". Ancak ne yazık ki, bu kriter her zaman takip edilmez (aşağıda göreceğimiz gibi).
WordPress içinde ihtiyaç duyduğunuzda aşina olacağınız birçok koşullu etiket vardır. Ancak son derece yaygın olan birkaç tane var ve onları ne kadar erken tanırsanız o kadar iyi. Öyleyse bunlara daha yakından bakalım:
-
is_single. Geçerli öğenin bir WordPress gönderisi mi yoksa başka herhangi bir özel gönderi türünün (örneğin bir WooCommerce ürünü gibi) bir örneği mi olduğunu kontrol eder. -
is_page. Geçerli öğenin bir WordPress sayfası olup olmadığını kontrol eder. -
is_attachment. Mevcut elemanın bir ek olup olmadığını kontrol eder. Ekler, Ortam Kitaplığınıza yüklediğiniz resimler, videolar, dosyalar vb. dosyalardır. -
is_singular. Önceki üç işlevden herhangi birinintrueolup olmadığını kontrol eder. Yani, geçerli öğenin bir gönderi, sayfa, ek veya başka bir gönderi türü olup olmadığını kontrol eder. -
comments_open. Ziyaretçiler geçerli öğe hakkında yorum yapabilirsetruedeğerini döndürür. Görmek? Burada koşullu etiketinis_ile başlamadığı bir örneğiniz var. -
is_category. Şu anda bir kategori arşiv sayfasına bakıp bakmadığımızı kontrol eder. -
in_category. Geçerli gönderi verilen kategorideyse true değerini döndürür. -
is_tag. Şu anda bir etiket arşiv sayfasına bakıp bakmadığımızı kontrol eder. -
has_tag. Geçerli gönderinin belirtilen etiket kullanılarak etiketlenip etiketlenmediğini kontrol eder. -
is_main_query. WordPress'in ana döngüsünde olup olmadığımızı kontrol eder.
Yanıltıcı olabilecek koşullu etiketler olduğunu biliyor muydunuz?
Koşullu etiketlerin, değerlendiriyor gibi göründükleri ve gerçekte değerlendirdikleri farklı şeyler olduğundan, bizi kafa karışıklığına götürebilecek adlara sahip olduğu bazı durumlar vardır:
-
is_admin. Bu işlevin mevcut kullanıcının yönetici olup olmadığını kontrol ettiğini düşünebilirsiniz, değil mi? Yanlış! WordPress Dashboard'daki bir sayfada mı (ve ardından sonucutrueolur) veya ön uçta (yanifalse) olup olmadığımızı kontrol eder. -
is_home. Bu işlevin, geçerli sayfanın ana sayfanız olup olmadığını kontrol ettiğini düşünürdüm. Örneğin, web sitemizdehttps://neliosoftware.comolacaktır. Ama ne yazık ki, durum böyle değil. WordPress bir blog platformu olarak doğdu ve bence bu, bazı "eski kodlara" bir örnek.is_home, geçerli sayfanın Blog sayfanız olup olmadığını kontrol eden koşullu bir işlevdir. Bu nedenle, örneğin, WordPress'in varsayılan kurulumunu kullanıyorsanız, bir ziyaretçi ana sayfada (https://yourweb.com) olduğundais_homegerçekten detruedeğerini döndürür, çünkü bu sayfa en son blog gönderilerinizi gösterir. Ancak blog sayfanızı başka bir şeye ayarlarsanız (https://yourweb.com/bloggibi), ziyaretçihttps://yourweb.com/blogistediğindeis_hometrue, aksi takdirdefalseolur. -
is_front_page. Ve bu, ziyaretçinin "ana sayfada" olduğunu size bildirecek koşullu etikettir. -
is_dynamic_sidebar. Bu işlev, temanızda bir veya daha fazla widget kenar çubuğu olup olmadığını kontrol eder ve varsa, bu kenar çubuklarından en az biri boş değilsetruedeğerini döndürür.
Koşullu Etiketleri Parametrelendirme
Çoğu koşullu etiket, parametresiz çağrılabilen işlevler olsa da, birçoğu parametreleri destekler. Bunları kullanırsak, mevcut gönderinin karşılaması gereken kriterler hakkında daha spesifik olabiliriz. Ve bunu oldukça mantıklı bir şekilde yapıyorlar.

Kullandığımız belirli işleve bağlı olarak, mevcut öğenin belirli bir kimliği veya belirli bir sümüklü böcek olup olmadığını, belirli bir gönderi türünün bir örneği olup olmadığını veya belirli bir başlığı olup olmadığını kontrol etmek isteyebiliriz. Örneğin:
-
is_singular( 'product' )geçerli öğenin bir ürün olup olmadığını kontrol eder. -
is_page( 'Contact Us' ), mevcut sayfanın başlığının "Bize Ulaşın" olup olmadığını kontrol eder. Bu işlev farklı türde argümanları kabul eder ve sağladığınız şeye bağlı olarak bir şeyi veya diğerini kontrol eder. Örneğin, mevcut öğenin belirli bir kimliği veya belirli bir başlığı veya slug'u olup olmadığını kontrol edebilirsiniz. Oldukça temiz, ha? Listeleri parametre olarak bile kullanabilirsiniz! -
is_single( [ 5, 10, 11 ] )geçerli öğenin kimliğinin 5, 10 veya 11 olup olmadığını kontrol eder.is_pageile oldukça benzerdir, ancak daha önce söylediğimiz gibi, sayfa dışındaki gönderiler için çalışır.
Koşullu Etiketler Nasıl Kullanılır
Koşullu etiketlerin kullanışlı olabileceği birkaç örneğe bakalım.
Şablonları Özelleştirme
Muhtemelen öngördüğünüz gibi, koşullu etiketler açıkça temalarda faydalıdır. Temanın herhangi bir zamanda görüntülenen içeriğin türüne bağlı olarak şu veya bu bilgiyi göstermesini istiyorsanız (ve bu sık sık yapmak isteyeceğimiz bir şeydir), koşullu etiketler sizin müttefiklerinizdir:
<?php // ... if ( ! is_page() ) { echo '<span class="whatever">'; echo $something_relevant; echo '</span>'; } // ...Bu, farklı içerik türleri için aynı şablonu kullanmanıza ve her birini koşullu etiketlerle özelleştirmenize olanak tanır.
Koşullu Olarak Kuyruğa Alma Varlıkları
Ancak koşullu etiketler, eklenti geliştiricileri için de son derece yararlıdır. Özellikle, koşullu etiketlerden aldığımız sonuçlara bağlı olarak, eklentimizin bölümlerini koşullu olarak yüklememize yardımcı olurlar.
Örneğin, blog gönderilerimize bir tür işlevsellik ekleyen bir eklenti geliştirdiğimizi hayal edin. Bu işlevin, bir komut dosyasını ve bir stil sayfasını ön uca yerleştirmemizi gerektirdiğini varsayalım. WordPress'te komut dosyalarını ve stilleri kuyruğa almak için wp_enqueue_scripts adında bir filtremiz var:
function nelio_plugin_fancy_feature() { wp_enqueue_script( 'nelio_plugin_feat', nelio_plugin()->url . '/assets/dist/feat.js' ); wp_enqueue_style( 'nelio_plugin_feat', nelio_plugin()->url . '/assets/dist/feat.css' ); } add_action( 'wp_enqueue_scripts', 'nelio_plugin_fancy_feature' ); Önceki snippet'teki sorun, ziyaretçinin ne istediği önemli değil, varlıklarımızı her zaman kuyruğa almasıdır. wp_enqueue_scripts her çalıştığında (ve her ön uç isteğinde çalışır), geri arama işlevimiz çağrılacak ve komut dosyamız ve stil sayfamız eklenecektir. Ancak özelliğimizin yalnızca blog gönderilerini etkilediğini söyledik, bu nedenle… gerçekten bu varlıkları her zaman kuyruğa almamız gerekiyor mu? Tabii ki değil! Uygun koşullu etiketi kullanarak bunu iyileştirebiliriz:
function nelio_plugin_fancy_feature() { if ( ! is_single( 'post' ) ) { return; } wp_enqueue_script( 'nelio_plugin_feat', nelio_plugin()->url . '/assets/dist/feat.js' ); wp_enqueue_style( 'nelio_plugin_feat', nelio_plugin()->url . '/assets/dist/feat.css' ); } add_action( 'wp_enqueue_scripts', 'nelio_plugin_fancy_feature' );Özetle
WordPress'in Koşullu Etiketleri, içeriğimizin farklı kriterlerini test etmemize ve böylece ne olacağını buna göre uyarlamamıza izin verir. Aşırı basitliklerine rağmen, kodumuzu daha anlaşılır ve verimli kılan çok kullanışlı fonksiyonlardır.
Umarım bugün bir şeyler öğrenmişsinizdir ve her zaman olduğu gibi herhangi bir sorunuz veya yorumunuz varsa lütfen aşağıdaki yorum bölümünde bize bildirin.
Unsplash'ta Justin Luebke tarafından öne çıkan görsel.
