Pisałem już o tym – nic tak nie wstrzykuje do żył dopaminy jak znalezienie po wielu godzinach szukania rozwiązania jakiegoś problemu 🙂 Zatem właśnie znów jestem pełen dopaminy 😉

Tworząc kolejny WordPressowy plugin postanowiłem zrobić tym razem coś nieco inaczej niż zazwyczaj. Zamiast do tworzenia widgetów użyć wyraźnie oznaczonej jako przestarzała funkcji register_sidebar_widget, postanowiłem zrobić to obecnie polecanym sposobem, czyli przez rozszerzenie klasy WP_Widget.

Znalazłem na sieci tutorial, który niestety jak się okazało nie działa. Dodanie wywołania funkcji register_widget powodowało czystą stronę w oknie przeglądarki. Co ciekawe strona na kodeksie też podaje błędne (jak się okazuje rozwiązanie).

A jakie jest rozwiązanie prawidłowe? Banalne, ale musiałem nieźle się naszukać 🙂 Zamiast wywoływać register_widget() bezpośrednio pakujemy ją w haka akcyjnego ‚widgets_init’. Czyli – zakladając, że nasza klasa widgeta nazywa się ‚NaszWidget’, aktywujemy ją w ten sposób:

add_action('widgets_init', 'NaszInit');
function NaszInit() {
register_widget('NaszWidget');
}