register_sidebar – nowe pola dla widgetów w WordPress

Pierwszy projekt strony pod WordPressem jaki buduję od podstaw, czyli z własnym szablonem tworzę na bazie „czystego szablonu” Underscores. Domyślnie szablon ten zawiera tylko jedno pole dla widgetów w prawym sidebarze, utworzone za pomocą funkcji ‚register_sidebar‚. Mój projekt przewiduje cztery pola w sekcji ‚footer’. Po utworzeniu szablonu, który nazwałem ‚vitadent’ dostałem plik z podstawowymi funkcjami: function.php. Aby dodać inne pola dla widgetów należy otworzyć ten plik i dopisać kilka linijek kodu.

Przykład implementacji register_sidebar

1
2
3
4
5
6
7
8
9
10
function vitadent_widgets_init() {
register_sidebar( array(
    'name' => esc_html__( 'Sidebar', 'vitadent' ),
    'id' => 'sidebar-1',
    'description' => esc_html__( 'Add widgets here.', 'vitadent' ),
    'before_widget' => '<section id="%1$s" class="widget %2$s">',
    'after_widget' => '</section>',
    'before_title' => '<h2 class="widget-title">',
    'after_title' => '</h2>',
) );

Aby dodać kolejny widget trzeba dodać kolejną funkcję ‚register_sidebar’ zmieniając wartości pól ‚id’ i ‚name’.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
register_sidebar( array(
    'name' => esc_html__( 'Sidebar', 'vitadent' ),
    'id' => 'sidebar-1',
    'description' => esc_html__( 'Add widgets here.', 'vitadent' ),
    'before_widget' => '<section id="%1$s" class="widget %2$s">',
    'after_widget' => '</section>',
    'before_title' => '<h2 class="widget-title">',
    'after_title' => '</h2>',
) );
register_sidebar( array(
    'name' => 'Footer Sidebar 1',
    'id' => 'footer-sidebar-1',
    'description' => 'Appears in the footer area',
    'before_widget' => '<aside id="%1$s" class="widget %2$s">',
    'after_widget' => '</aside>',
    'before_title' => '<h4 class="topLead widget-title">',
    'after_title' => '</h4>',
) );

Dodatkowo może ustalić w jakich typach nagłówka ma się pojawić nazwa widgetu (before_title i after_title), jakie ma mieć przypisane klasy i jakim znacznikiem ma być otoczony cały kod (before_widget i after_widget). Ilość widgetów nie jest ograniczona.

Dodaj komentarz