WordPress'te Koşullu Etiketleri Kullanma
Yayınlanan: 2012-12-27Temalarınızda özel işlevlerin nasıl yürütüleceğine bir göz atalım, belirli koşulların karşılanmasına ve evet döndürülmesine bağlı olarak farklı kanca konumları.
Genesis gibi premium bir tema çerçevesi kullanıyorsanız, bir kullanıcı kılavuzuna erişebilirsiniz.
Kullanıcı kılavuzu genellikle özel işlevler içeren kod parçacıkları içerir.
Bu özel işlevler, tema eylem kancalarınız kullanılarak belirli tema konumlarında yürütülebilir.
Tek yapmanız gereken, tema işlevlerinizi özelleştirmek için kod parçacığını alt temalar function.php dosyasına yapıştırmak.
Her tema çerçevesi farklı kancalar kullanır, ancak hemen hemen aynı şeyi yaparlar, sadece aşağıdaki gibi farklı isimler verilir:
thesis_after_post genesis_after_post woo_post_after
Bu 3 örneğin tümü, sosyal paylaşım/takip butonları ile bir widget alanı, başlık sayfası veya e-posta tercih kutusu eklemek isteyebileceğiniz gönderi bittikten sonra yürütülür.
Ancak, özel işlevin yalnızca belirli koşullara dayalı olarak belirli bir kanca konumunda yürütülmesini istiyorsanız? Örneğin:
- Yalnızca tek gönderilerde: is_single()
- Yalnızca belirli bir kategorideki gönderilerde: is_category()
- Yalnızca bir arşiv sayfasında: is_archive()
- Sadece ana sayfada: is_home()
Özel işlevinize, tema kancası konumunuzda yürütülen bir koşullu etiket eklemek, işlevi yalnızca koşul evet döndürdüğünde yürütmenizi sağlar.
Özel işlevleri kullanmaya alıştıktan ve tema eylem kancalarınızın nerede ve nasıl çalıştığını anladıktan sonra, bazı geliştiricilerin dediği gibi koşullu etiketler veya koşullu ifadeler kullanarak bir adım daha ileri gidebilirsiniz.
Peki koşullu ifadeleri nasıl kullanırım?
Koşullu Etiket Örnekleri
İşte WordPress tasarımcılarının yanı sıra tema ve eklenti geliştiricileri tarafından kullanılan bazı yaygın koşullu etiketler.
is_home() is_category() is_single() is_page()
İlk olarak, birden çok ifadeye dayalı koşullu etiketlerin kullanımına bir göz atalım.
is_single & in_category
if (is_single() && in_category('134'))
if (is_single() && in_category('web-design'))
Bu kod parçacıklarının her ikisi de tam olarak aynı şeyi yapar ve 2 koşullu etiket içerir.
Birincisi 134 kategori kimliğini, ikincisi ise 'web tasarımı' kategori bilgisini kullanır.
Bu kodla eklediğiniz herhangi bir işlev, yalnızca 134 posta kimliği veya 'web tasarımı' sayfa bilgisi içeren kategorideki tek gönderilerde yürütülür. Bu açıkça web tasarım kategorisidir.
parametreler
Yukarıdaki örnekte görebileceğiniz gibi, aşağıdaki gibi koşullu etiketlerle farklı parametreler kullanabilirsiniz:
- Posta kimliği
- Yazı başlığı
- Slug Gönder
is_home() etiketi gibi bazı koşullu etiketler, muhtemelen gerçekten ihtiyaç duymadıkları için herhangi bir parametre hariç tutmazlar.
is_page
if (is_page('4289'))
if (is_page('contact'))
Bu koşullu etiketlerin her ikisi de tam olarak aynı şeyi yapar.
İlki 4289 sayfa posta kimliğini ve ikincisi sayfa adını ve 'kişi' bilgisini kullanır.
Bu etikete eklediğiniz işlevler yalnızca iletişim sayfasında yürütülür.
Ana Sayfa Koşullu Etiketler
is_home etiketlerini kullanmanın en yaygın kullanımları, yalnızca ana sayfada bir şey görüntülemek veya ana sayfayı işlevden hariç tutmaktır.
ev
if (!is_home()
Bu kod şunları içerir ! home_page koşullu etiketinden önce, bu nedenle ana sayfayı işlevden hariç tutar.
if (is_home()
Bu kod, yalnızca ana sayfa için geçerli olan bir koşul oluşturur.
Çalışma Örneği
Aşağıdaki kodu bir kod düzenleyici kullanarak kopyalayıp alt tema işlevler dosyanıza yapıştırırsanız, yalnızca tek gönderilerde başlıktan sonra metin yazdırdığını görürsünüz.
add_action( 'genesis_entry_footer', 'add_content_after_single_posts' ); function add_content_after_single_posts() { if ( is_singular('post') ) { echo 'Content Added After Single Post Entry Footer'; } }
Yukarıdaki kod, is_singular('post')
koşullu etiketiyle genesis_entry_footer
kanca konumunu kullanır ve içeriğin ardından yalnızca tek gönderilerdeki metni yazdırır. Bu, tema eylem kancalarınızla özel bir işlevde koşullu etiketlerin nasıl kullanılacağını gösteren klasik bir örnektir.
Dizili Koşullu Etiketler
Koşullu ifadenize bir dizi de ekleyebilirsiniz.
is_page (dizi
if (is_page(array('contact','37290'))
Virgülle ayırarak bu diziye dahil ederek bu diziye daha fazla sayfa ekleyebilirsiniz.
Bu işlev yalnızca iletişim sayfasında ve 37290 posta kimliğini içeren sayfada yürütülür.
Metin/HTML Çıktısı Alma
Yalnızca bir metin veya HTML görüntülemek istiyorsanız, tema eylem kancalarınıza koşullu bir ifade ekleyebilirsiniz. Bunu yapmanın en kolay yolu, bir kanca eklentisi kullanarak koşullu etiketi HTML'nize yapıştırmaktır.
if ( ! is_home()) { echo'Your Text Here'; }
Action hook ile ortak bir fonksiyon alalım ve bir koşullu etiket ekleyelim.
Genesis'te Koşullu Etiketler
StudioPress temalarında kullanmak için Genesis tema kod parçacıklarından birini kolayca ekleyebilir ve kodla birlikte bir koşullu etiket ekleyebilirsiniz.
/** Add custom body class to video category */ add_filter( 'body_class', 'add_body_class' ); function add_body_class( $classes ) { if ( is_category( 'video-tutorials' ) ) $classes[] = 'custom-class'; return $classes; }
Bu kod, kullanıcının özel bir sınıf kullanarak video kategorisi sayfasını biçimlendirmesini sağlar.
Kullanılan parametre video-eğitim bilgisidir, ancak koşullu etiketinizde post.id veya başlığı kullanabilirsiniz.
Tezde Koşullu Etiketler
Kendin Yap temaları kullanıcı kılavuzundan özel bir işlev alalım ve koşullu bir ifade ekleyelim.
function hide_nav_menu() { if(is_page ( 'contact-page' ) ) remove_action ( 'thesis_hook_before_header', 'thesis_nav_menu' ); } add_action ( 'thesis_hook_before_html','hide_nav_menu' );
Bu, yalnızca iletişim sayfasındaki gezinme menüsünü gizleyecektir.
İletişim sayfası için sayfa bilgisi, gönderi kimliği veya sayfa adı dahil olmak üzere farklı parametreler kullanabiliriz.
Kodu Nereye Koymalı?
Premium tema çerçevesi kullanıyorsanız, kodu alt temalar function.php dosyanıza yapıştırabilirsiniz.
Bu çerçevelerin tümü, kodu, koşullu etiketlerinize göre yürütülmesini istediğiniz kanca konumuna yapıştırmanıza olanak tanıyan bir kanca eklentisi veya yöneticisi sunar.
- Woo kanca yöneticisi
- Genesis Basit Kancalar
- Tez, İlerleme ve WordPress Kancaları
Açıkçası, bir kanca yöneticisi kullanıyorsanız, eylem kancasını kodunuza eklemeniz gerekmeyecektir.
Başka bir seçenek de, koşullu etiketleri, koşullarınıza göre işlevi yürütmek istediğiniz konumdaki tema şablon dosyalarınıza doğrudan yapıştırmaktır. Temayı güncellediğinizde kodu kaybedeceğiniz için bu en iyi uygulama değildir.
Bir alt tema oluşturmak ve orada şablon dosyalarınızda değişiklikler yapmak için her zaman en iyi uygulama. Daha da iyisi, tema geliştiricinizin önceden oluşturduğu özel işlevleri kullanın ve kodu, koşullu etiketlerinizle birlikte alt tema işlevleri dosyanıza yapıştırın, testler işe yaradığını kanıtladıktan sonra.
WordPress Koşullu Etiketler ve Örnekler
WordPress Kodeksinde örneklerle birlikte tüm WordPress koşullu etiketlerinin bir listesini bulacaksınız.
Temaya Özgü Koşullu Etiketler
Bazı premium temalar, tema çerçevelerine özgü kendi koşullu etiketlerini de kullanır.
Woo Commerce bunlardan biridir: Örnekler:
is_woocommerce() - Returns true if on a page which uses WooCommerce templates is_product_category() - Returns true when viewing a product category archive is_checkout() - Returns true on the checkout page.
Woo Commerce ile koşullu etiketleri kullanma hakkında daha fazla bilgi edinin.
Çözüm
Geliştirici tarafından test edilen çok çeşitli kod parçacıkları sunan bir tema kullanmak çok büyük bir bonus. Bu şekilde, WordPress'in sunduğu koşullu etiketlerden herhangi birini seçebilir ve temanızı istediğiniz şekilde özelleştirmek için kod snippet'inize ekleyebilirsiniz.