Jak tworzyć wiele widżetów w WordPress za pomocą pętli For i Foreach
Opublikowany: 2020-01-25Szukasz 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.