Jak stworzyć własny widget w WordPress?

WordPress umożliwia tworzenie własnych widgetów, czyli elementów wyświetlanych w bocznych panelach (sidebarach) lub stopkach. Dzięki temu możesz dodawać spersonalizowane treści, formularze czy dynamiczne funkcje bez konieczności modyfikowania motywu.


1. Co to jest widget w WordPress?

Widget to blok kodu, który można umieścić w obszarach widget-ready w motywie, np. sidebarze lub stopce. WordPress oferuje standardowe widgety (np. lista kategorii, kalendarz, tekst), ale możesz stworzyć własny z dowolną funkcjonalnością.


2. Tworzenie prostego widgetu

Aby stworzyć własny widget, najlepiej stworzyć wtyczkę lub dodać kod do pliku functions.php motywu potomnego (child theme).

Przykład prostego widgetu wyświetlającego powitanie:

class Powitanie_Widget extends WP_Widget {

    public function __construct() {
        parent::__construct(
            'powitanie_widget',
            'Powitanie Widget',
            array('description' => 'Wyświetla powitanie dla użytkowników')
        );
    }

    public function widget($args, $instance) {
        echo $args['before_widget'];
        echo "<p>Witaj na mojej stronie!</p>";
        echo $args['after_widget'];
    }
}

// Rejestracja widgetu
function zarejestruj_powitanie_widget() {
    register_widget('Powitanie_Widget');
}
add_action('widgets_init', 'zarejestruj_powitanie_widget');

Po dodaniu tego kodu, w panelu WordPress w Wygląd → Widgety pojawi się nowy widget „Powitanie Widget”, który można przeciągnąć do sidebaru lub stopki.


3. Dodawanie opcji do widgetu

Możesz pozwolić użytkownikowi zmieniać treść widgetu w panelu WordPress:

public function form($instance) {
    $text = !empty($instance['text']) ? $instance['text'] : 'Witaj!';
    ?>
    <p>
        <label for="<?php echo $this->get_field_id('text'); ?>">Tekst powitania:</label>
        <input class="widefat" id="<?php echo $this->get_field_id('text'); ?>" 
               name="<?php echo $this->get_field_name('text'); ?>" 
               type="text" value="<?php echo esc_attr($text); ?>">
    </p>
    <?php
}

public function update($new_instance, $old_instance) {
    $instance = array();
    $instance['text'] = (!empty($new_instance['text'])) ? sanitize_text_field($new_instance['text']) : '';
    return $instance;
}

public function widget($args, $instance) {
    $text = $instance['text'];
    echo $args['before_widget'];
    echo "<p>{$text}</p>";
    echo $args['after_widget'];
}

Teraz użytkownik może sam ustawić treść powitania w panelu administracyjnym.


4. Zastosowania własnych widgetów

  • Wyświetlanie formularzy kontaktowych lub newsletterów,
  • Dodawanie dynamicznych treści (ostatnie posty, popularne produkty),
  • Personalizacja doświadczenia użytkownika,
  • Integracja z API (np. pogodowym lub kursów walut).

Podsumowanie

Tworzenie własnych widgetów w WordPress to świetny sposób na rozszerzenie funkcjonalności strony. Dzięki nim możesz dodać interaktywne elementy, personalizować treści i tworzyć bardziej atrakcyjne doświadczenie dla odwiedzających.

KROK 1 Z 4

Z CZYM POTRZEBUJESZ POMOCY?