Jak tworzyć wiele widżetów w WordPress za pomocą pętli For i Foreach

Opublikowany: 2020-01-25

Jak tworzyć wiele widżetów w WordPress Szukasz dynamicznego sposobu na tworzenie wielu widżetów w WordPressie bez pisania zbyt dużej ilości kodu? A może widziałeś motyw WordPress, który umożliwia tworzenie paska bocznego lub tworzenie wielu widżetów z pulpitu nawigacyjnego?

W poprzednim samouczku szczegółowo wyjaśniłem, jak dodać pasek boczny w WordPress . Dzisiaj, w tym krótkim samouczku, podzielę się z Tobą szybkim rozwiązaniem do tworzenia wielu widżetów w WordPressie w locie. To nie tylko zaoszczędzi Twój czas, ale wykorzystasz tę sztuczkę w wielu projektach, zwłaszcza jeśli jesteś zajętym profesjonalnym programistą WordPress.

Zapętl, aby utworzyć wiele pasków bocznych WordPress

Idealnie, chcielibyśmy użyć funkcji, która tworzy wiele pasków bocznych WordPressa za pomocą jakiejś pętli . Kiedy tworzysz ten kod dla pierwszego motywu lub wtyczki, zamierzasz użyć go ponownie przy tworzeniu kolejnych motywów i wtyczek.

Ta funkcja może być również podstawą do zbudowania generatora dynamicznego paska bocznego używanego w motywie lub wtyczce WordPress. Aby w pełni zrozumieć, jak działa ten kod, musisz być zaznajomiony z procesem tworzenia paska bocznego WordPress , jak dokładnie wyjaśniłem w tym poście.

Tworzenie widżetów WordPress

Widżety WordPress odgrywają kluczową rolę w pomaganiu użytkownikom w wyświetlaniu nowych treści w różnych sekcjach ich witryny. W tym poście o tym, jak tworzyć obszary widżetów w WordPress ; Podzieliłem się ważnymi wskazówkami i kodem, a także bardzo jasno wyjaśniłem w tym poście , jak dodać pasek boczny w WordPressie .

Gdy masz możliwość dodania widżetu w motywie WordPress, jest to po prostu niesamowite, ponieważ możesz dodać dowolną nową funkcję we wszystkich sekcjach swojej witryny.

Aby szybko przejrzeć, jak dodać pasek boczny lub obszar widżetów w WordPress, należy dodać następujący kod do functions.php, aby zarejestrować pasek boczny jako pierwszy krok podczas dodawania widżetu w motywie WordPress:

 /**
* Zarejestruj obszar widgetu.
*/

funkcja njengah_create_one_widget_tutorial() {

//Zarejestruj funkcję paska bocznego — https://developer.wordpress.org/reference/functions/register_sidebar/

register_sidebar(

  szyk(
     'name' => __( 'Przykład widżetu Njengah ', 'textdomain' ),
     'id' => 'pasek boczny-1',
     'description' => __( 'Dodaj widżety tutaj, aby pojawiały się na pasku bocznym.', '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');

Jest to funkcja register_sidebar(), której używamy do dodania jednego widżetu do witryny WordPress, a widżet może być teraz wyświetlany w odpowiednim szablonie strony za pomocą funkcji dynamic_sidebar() w następujący sposób:

 <?php if ( is_active_sidebar( 'sidebar-1' ) ) : ?>

    <ul id="pasek boczny">

      <?php dynamic_sidebar( 'pasek boczny-1' ); ?>

    </ul>

<?php endif; ?>

Tworzenie wielu pasków bocznych widżetów w WordPress

Ponieważ kod do zarejestrowania paska bocznego używał funkcji register_sidebar() do tworzenia większej liczby pasków bocznych, wystarczy powtórzyć ten kod kilka razy, jak chcesz: Teraz możemy utworzyć trzy paski boczne, powtarzając ten kod w następujący sposób:

 /**
* Zarejestruj 3 obszary widżetów.
*/

funkcja njengah_create_three_widget_tutorial() {

//Zarejestruj pasek boczny nr 1

register_sidebar(
   szyk(
       'name' => __( 'Njengah Sidebar 1 ', 'textdomain' ),
       'id' => 'pasek boczny-1',
      'description' => __( 'Dodaj widżety tutaj, aby pojawiały się na pasku bocznym 1.', 'textdomain' ),
      'before_widget' => '<section id="%1$s" class="widget %2$s">',
      'after_widget' => '</section>',
      'before_title' => '<h2 class="widget-title">',
      'after_title' => '</h2>',
  )
);

//Zarejestruj pasek boczny nr 2

register_sidebar(
   szyk(
       'name' => __( 'Pasek boczny Njengah 2', 'textdomain' ),
        'id' => 'pasek boczny-2',
        'description' => __( 'Dodaj widżety tutaj, aby pojawiały się na Twoim pasku bocznym 2.', 'textdomain' ),
        'before_widget' => '<section id="%1$s" class="widget %2$s">',
        'after_widget' => '</section>',
        'before_title' => '<h2 class="widget-title">',
       'after_title' => '</h2>',
     )
);

//Zarejestruj pasek boczny #3

register_sidebar(
   szyk(
       'name' => __( 'Njengah Sidebar 3 ', 'textdomain' ),
       'id' => 'pasek boczny-3',
       'description' => __( 'Dodaj widżety tutaj, aby pojawiały się na pasku bocznym 3.', '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');

Możesz tworzyć coraz więcej obszarów widżetów, powtarzając ten kod, którego używasz do rejestracji widżetów i wszystko działa i jest fajne.

Ale poczekaj chwilę! Nie słyszałeś o jednej fundamentalnej zasadzie lub programowaniu – DRY (Don't Repeat Yourself)?

Jest to prosta zasada, która oznacza, że ​​Twój kod powinien być wydajny i powinien unikać takich powtórzeń, aby uniknąć nadmiarowości. Możemy zastąpić ten kod czymś lepszym, na przykład możemy przekazać argument do funkcji register_sidebar(), aby zrobić to trzy razy.

Twórz wiele widżetów w WordPress z argumentem

Możemy osiągnąć nasz cel, jakim jest tworzenie wielu widżetów w WordPressie, zmieniając funkcję register_sidebar(), przekazując tablicę argumentów jako drugi parametr, a pierwszym parametrem jest liczba widżetów, które chcemy utworzyć. W takim przypadku możemy zmienić udostępniony powyżej kod na następujący:

 function create_multiple_sidebar_widgets() {

$argumenty = tablica(
    'name' => 'Pasek boczny Njengah %d',
    'id' => 'njengah-pasek boczny',
    'description' => 'Jeden z bocznych pasków samouczka Njengah',
    'klasa' => '',
    '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');

Wartość nazwy ma symbol zastępczy %d, który po prostu pozwala nam wyświetlać paski boczne z liczbami 1,2 i 3.

Jest to szybkie rozwiązanie do tworzenia wielu widżetów w WordPressie, ale nie jest to rozwiązanie ostateczne. Możemy iść dalej i ulepszyć to, co zaraz zademonstruję.

Twórz wiele pasków bocznych za pomocą tablicy w WordPress

Powyższe rozwiązanie nie jest zbyt skuteczne, ponieważ tytuł i opis są ograniczone tylko do tych, które przypiszesz w funkcji register_sidebar().

Aby ulepszyć to rozwiązanie, możemy wprowadzić tablicę z nazwami, identyfikatorami i opisami, a następnie używamy pętli foreach do zarejestrowania pasków bocznych.

Poniżej znajduje się przykład tworzenia wielu widżetów przy użyciu tablicy i pętli foreach:

 function create_multiple_sidebar_widgets() {

$njengah_sidebars = tablica (
  szyk(
     'name' => 'Strona główna obszaru widżetów',
     'id' => 'strona-obszaru-widgetu',
     'description' => 'Widżety wyświetlane na stronie głównej',
  ),
  szyk(
      'name' => 'Nagłówek obszaru widżetu ',
     'id' => 'nagłówek-obszaru-widgetu',
     'description' => 'Widżety pokazane w nagłówku',
  ),
  szyk(
     'name' => 'Stopka obszaru widżetów',
     'id' => 'stopka-obszaru-widgetu',
     'description' => 'Widżety pokazane w stopce',
   ),
  );

   $domyślne = tablica(
      'name' => 'Pasek boczny Njengah',
      'id' => 'njengah-pasek boczny',
      'description' => 'Domyślny pasek boczny jest wyświetlany po lewej stronie stron bloga w tym motywie',
       'klasa' => '',
      'before_widget' => '<li id="%1$s" class="widget %2$s">',
      'after_widget' => '</li>',
      'before_title' => '<h2 class="widgettitle">',
      'after_title' => '</h2>'
  );

  foreach( $njengah_sidebars jako $sidebar ) {

    $args = wp_parse_args ( $ pasek boczny, $ defaults );

    register_sidebar( $args );
   }

}
add_action( 'widgets_init', 'create_multiple_sidebar_widgets');

To rozwiązanie daje możliwość tworzenia wielu widżetów w przyszłości, ponieważ wystarczy dodać szczegóły każdego nowego widżetu (nazwa, identyfikator i opis ) do tablicy, a widżet jest tworzony w locie.

Twórz wiele podobnych widżetów stopek w WordPress

Ostatecznie jest to najlepsze podejście do tworzenia wielu widżetów w WordPress, chociaż druga opcja może się również przydać, gdy potrzebujesz wielu podobnych widżetów.

Na przykład, gdy chcesz utworzyć kilka widżetów stopki, łatwiej jest użyć pętli for w następujący sposób:

 /**
* Zarejestruj obszar widżetów za pomocą pętli for
*
* @autor Joe Njenga
*/

funkcja njengah_register_sidebars_dynamically() {

    dla ( $i = 1, $n = 5; $i <= $n; $i++ ) {

       register_sidebar(

         szyk(
               'name' => esc_html__( 'Obszar stopki #', 'textdomain' ) . $ja,
               'id' => 'stopka-' . $ja,
               'description' => sprintf( esc_html__( 'Kolumna #%s w obszarze stopki', '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' );

Myślę, że może to być jedno z najbardziej przydatnych rozwiązań do tworzenia wielu widżetów w WordPressie, ponieważ pętla for po prostu liczy do 5 i tworzy 5 widżetów, możesz po prostu zmienić liczbę na dowolną inną liczbę widżetów, które chcesz, a wiele widżetów zostanie wygenerowanych dynamicznie w locie.

Zawijanie

Omówiliśmy trzy różne sposoby tworzenia wielu widżetów w WordPressie i mam nadzieję, że to dopiero początek, aby dać impuls do stworzenia bardziej innowacyjnych sposobów tworzenia wielu dynamicznych pasków bocznych lub wielu widżetów w motywach i wtyczkach WordPress. Wreszcie, ważne jest, aby każdy programista WordPress nauczył się korzystać z zasady DRY, ponieważ nie tylko oszczędza to czas, ale także poprawia wydajność kodu.