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