For & Foreach Döngülerini Kullanarak WordPress'te Birden Çok Widget Nasıl Oluşturulur
Yayınlanan: 2020-01-25 Çok fazla kod yazmadan WordPress'te birden çok widget oluşturmanın dinamik bir yolunu mu arıyorsunuz? Veya panodan bir kenar çubuğu oluşturmanıza veya birden çok widget oluşturmanıza olanak tanıyan bir WordPress teması gördünüz mü?
Önceki bir eğitimde, WordPress'te kenar çubuğunun nasıl ekleneceğini ayrıntılı olarak açıkladım. Bugün, bu hızlı eğitimde, WordPress'te anında birden çok widget oluşturmak için hızlı bir çözümü sizinle paylaşacağım. Bu yalnızca zamandan tasarruf etmekle kalmayacak, aynı zamanda özellikle yoğun bir profesyonel WordPress geliştiricisiyseniz, bu numarayı birden fazla projede yeniden kullanacaksınız.
Birden Çok WordPress Kenar Çubuğu Oluşturmak için Döngü
İdeal olarak, bir tür döngü kullanarak birden çok WordPress kenar çubuğu oluşturan bir işlev kullanmak istiyoruz. Bu kodu ilk tema veya eklenti için oluşturduğunuzda, onu daha fazla tema ve eklenti geliştirmede yeniden kullanacaksınız.
Bu işlev aynı zamanda bir temada veya bir WordPress eklentisinde kullanılan dinamik bir kenar çubuğu oluşturucu oluşturmanın temeli olabilir. Bu kodun nasıl çalıştığını tam olarak anlamanız için, o gönderide ayrıntılı olarak açıkladığım gibi bir WordPress kenar çubuğu oluşturma süreci hakkında bilgi sahibi olmanız gerekir.
WordPress Widget'ları Oluşturma
WordPress widget'ları, kullanıcıların web sitelerinin farklı bölümlerinde yeni içerik görüntülemelerine yardımcı olmada çok önemli bir rol oynar. WordPress'te widget alanlarının nasıl oluşturulacağıyla ilgili bu yazıda; Önemli ipuçlarını ve kodu paylaştım ve ayrıca bu yazıda WordPress'e nasıl kenar çubuğu ekleneceğini çok net bir şekilde açıkladım.
WordPress temasına bir widget ekleyebildiğiniz zaman, sitenizin tüm bölümlerine herhangi bir yeni özellik ekleyebildiğiniz için bu şaşırtıcıdır.
WordPress'te kenar çubuğunun veya widget alanının nasıl ekleneceğini hızlı bir şekilde gözden geçirmek için, WordPress temanıza bir widget eklerken ilk adım olarak bir kenar çubuğunu kaydetmek için function.php'ye aşağıdaki kod eklenmelidir:
/** * Widget alanını kaydedin. */ function njengah_create_one_widget_tutorial() { // Kenar Çubuğu işlevini kaydedin - https://developer.wordpress.org/reference/functions/register_sidebar/ register_sidebar( sıralamak( 'name' => __( 'Njengah Widget Örneği', 'textdomain'), 'id' => 'kenar çubuğu-1', 'description' => __( 'Kenar çubuğunuzda görünmesi için buraya widget ekleyin.', 'textdomain' ), 'before_widget' => '<section id="%1$s" class="widget %2$s">', 'after_widget' => '</section>', 'before_title' => '<h2 class="widget-title">', 'after_title' => '</h2>', ) ); } add_action( 'widgets_init', ' njengah_create_one_widget_tutorial');
Bu, WordPress sitesine bir pencere öğesi eklemek için kullandığımız register_sidebar() işlevidir ve pencere öğesi, artık dynamic_sidebar() işlevi kullanılarak ilgili sayfa şablonunda aşağıdaki gibi görüntülenebilir:
<?php if ( is_active_sidebar( 'sidebar-1' ) ) : ?> <ul id="kenar çubuğu"> <?php dynamic_sidebar( 'kenar çubuğu-1'); ?> </ul> <?php endif; ?>
WordPress'te Birden Çok Widget Kenar Çubuğu Oluşturma
Kenar çubuğunu kaydetme kodu daha fazla kenar çubuğu oluşturmak için register_sidebar() işlevini kullandığından, bu kodu istediğiniz gibi birkaç kez tekrarlamanız yeterlidir: Şimdi bu kodu aşağıdaki gibi tekrarlayarak üç kenar çubuğu oluşturabiliriz:
/** * 3 widget alanı kaydedin. */ function njengah_create_ three_widget_tutorial() { // Kenar Çubuğu #1'i Kaydet register_sidebar( sıralamak( 'isim' => __( 'Njengah Kenar Çubuğu 1', 'metin etki alanı'), 'id' => 'kenar çubuğu-1', 'description' => __( 'Kenar çubuğunuz 1'de görünmesi için buraya widget ekleyin', 'textdomain' ), 'before_widget' => '<section id="%1$s" class="widget %2$s">', 'after_widget' => '</section>', 'before_title' => '<h2 class="widget-title">', 'after_title' => '</h2>', ) ); //Kayıt Kenar Çubuğu #2 register_sidebar( sıralamak( 'ad' => __( 'Njengah Kenar Çubuğu 2', 'metin etki alanı'), 'id' => 'kenar çubuğu-2', 'description' => __( 'Kenar çubuğunuz 2'de görünmesi için buraya widget ekleyin', 'textdomain' ), 'before_widget' => '<section id="%1$s" class="widget %2$s">', 'after_widget' => '</section>', 'before_title' => '<h2 class="widget-title">', 'after_title' => '</h2>', ) ); //Kayıt Kenar Çubuğu #3 register_sidebar( sıralamak( 'isim' => __( 'Njengah Kenar Çubuğu 3', 'metin etki alanı'), 'id' => 'kenar çubuğu-3', 'description' => __( 'Kenar çubuğunuz 3'te görünmesi için buraya widget ekleyin', 'textdomain' ), 'before_widget' => '<section id="%1$s" class="widget %2$s">', 'after_widget' => '</section>', 'before_title' => '<h2 class="widget-title">', 'after_title' => '</h2>', ) ); } add_action( 'widgets_init', 'njengah_create_ Three_widget_tutorial');
Widget'ları kaydetmek için kullandığınız bu kodu tekrarlayarak daha fazla widget alanı oluşturabilirsiniz ve her şey çalışır ve harikadır.

Ama bir dakika bekle! Temel bir kural veya programlama hakkında bir şey duymadınız mı – DRY (Kendinizi Tekrar Etme)?
Bu, kodunuzun verimli olması ve fazlalığı önlemek için bu tür tekrarlardan kaçınması gerektiği anlamına gelen basit bir ilkedir. Bu kodu daha iyi bir şeyle değiştirebiliriz, örneğin, bunu üç kez yapmak için register_sidebar() işlevine bir argüman iletebiliriz.
Bir Argümanla WordPress'te Birden Çok Widget Oluşturun
İkinci parametre olarak bir dizi argüman ileterek register_sidebar() işlevini değiştirerek WordPress'te birden çok widget oluşturma hedefimize ulaşabiliriz ve ilk parametre oluşturmak istediğimiz widget sayısıdır. Bu durumda, yukarıda paylaşılan kodu şu şekilde değiştirebiliriz:
function create_multiple_sidebar_widgets() { $args = dizi( 'name' => 'Njengah Kenar Çubuğu %d', 'id' => 'njengah-kenar çubuğu', 'description' => 'Njengah öğretici kenar çubuklarından biri', 'sınıf' => '', 'before_widget' => '<li id="%1$s" class="widget %2$s">', 'after_widget' => '</li>', 'before_title' => '<h2 class="widgettitle">', 'after_title' => '</h2>' ); register_sidebar( 3, $args ); } add_action( 'widgets_init', 'create_multiple_sidebar_widgets');
Ad değeri, yalnızca 1,2 ve 3 sayılarıyla kenar çubuklarını görüntülememize izin veren bir %d yer tutucusuna sahiptir.
Bu, WordPress'te birden çok widget oluşturmak için hızlı bir çözümdür, ancak yine de nihai çözüm değildir. Birazdan göstereceğim gibi devam edebilir ve geliştirebiliriz.
WordPress'te Dizi ile Birden Çok Kenar Çubuğu Oluşturun
Başlık ve açıklama yalnızca register_sidebar() işlevinde atadığınızlarla sınırlı olduğundan yukarıdaki çözüm çok etkili değildir.
Bu çözümü daha iyi hale getirmek için isimler, kimlikler ve açıklamalar içeren bir dizi tanıtabiliriz, ardından kenar çubuklarını kaydetmek için bir foreach döngüsü kullanırız.
Aşağıda, bir dizi ve foreach döngüsü kullanarak birden çok pencere öğesi oluşturmaya bir örnek verilmiştir:
function create_multiple_sidebar_widgets() { $njengah_sidebars = dizi( sıralamak( 'name' => 'Widget Alanı Ana Sayfası', 'id' => 'widget-alan-ana sayfası', 'description' => 'Ana sayfada gösterilen widget'lar', ), sıralamak( 'name' => 'Widget Alanı Başlığı', 'id' => 'widget-alan-header', 'description' => 'Başlıkta gösterilen widget'lar', ), sıralamak( 'name' => 'Widget Alanı Alt Bilgisi', 'id' => 'widget-alan-altbilgi', 'description' => 'Alt bilgide gösterilen widget'lar', ), ); $varsayılanlar = dizi( 'isim' => 'Njengah Kenar Çubuğu', 'id' => 'njengah-kenar çubuğu', 'description' => 'Varsayılan kenar çubuğu, bu temadaki blog sayfalarının sol tarafında gösterilir', 'sınıf' => '', 'before_widget' => '<li id="%1$s" class="widget %2$s">', 'after_widget' => '</li>', 'before_title' => '<h2 class="widgettitle">', 'after_title' => '</h2>' ); foreach( $njengah_sidebars as $kenar ) { $args = wp_parse_args( $kenar çubuğu, $varsayılanlar); register_sidebar( $args ); } } add_action( 'widgets_init', 'create_multiple_sidebar_widgets');
Bu çözüm, diziye her yeni pencere öğesi ayrıntısını (ad, kimlik ve açıklama) eklemeniz gerektiğinden ve pencere öğesi anında oluşturulduğundan size gelecekte birden çok pencere öğesi oluşturma yeteneği verir.
WordPress'te Birden Çok Benzer Alt Bilgi Widget'ı Oluşturun
Sonuç olarak bu, WordPress'te birden çok pencere öğesi oluşturmak için en iyi yaklaşımdır, ancak ikinci seçenek, birden çok benzer pencere öğesi istediğinizde kullanışlı olabilir.
Örneğin, birkaç altbilgi widget'ı oluşturmak istediğinizde for döngüsünü aşağıdaki gibi kullanmak daha kolay olabilir:
/** * Widget alanını for döngüsü kullanarak kaydedin * * @yazar Joe Njenga */ function njengah_register_sidebars_dynamically() { for ( $i = 1, $n = 5; $i <= $n; $i++ ) { register_sidebar( sıralamak( 'name' => esc_html__( 'Altbilgi Alanı #', 'metindomain' ) . $ ben, 'id' => 'altbilgi-' . $ ben, 'description' => sprintf( esc_html__( 'Alt bilgi alanındaki #%s sütunu', 'textdomain' ), $i ), 'before_widget' => '<aside id="%1$s" class="widget %2$s">', 'after_widget' => '</aside>', 'before_title' => '<h3 class="widget-title">', 'after_title' => '</h3>', ) ); } } } add_action('widgets_init', 'njengah_register_sidebars_dynamically');
For döngüsü sadece 5'e kadar sayıldığından ve 5 pencere öğesi oluşturduğundan, bunun WordPress'te birden çok pencere öğesi oluşturmak için en kullanışlı çözümlerden biri olabileceğini düşünüyorum, bu sayıyı istediğiniz diğer sayıda pencere öğesiyle değiştirebilirsiniz ve birden çok pencere öğesi oluşturulacaktır. dinamik olarak anında.
toparlamak
WordPress'te birden çok pencere öğesi oluşturmanın üç farklı yolunu ele aldık ve umarım bu, WordPress temalarında ve eklentilerinde birden çok dinamik kenar çubuğu veya birden çok pencere öğesi oluşturmanın daha yenilikçi yollarını yaratma konusunda size ivme kazandırmak için yalnızca bir başlangıçtır. Son olarak, her WordPress geliştiricisinin DRY ilkesinden nasıl yararlanacağını öğrenmesi önemlidir, çünkü bu yalnızca zamandan tasarruf sağlamakla kalmaz, aynı zamanda kod verimliliğini de artırır.