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'); }
Comments
Można lepiej. A ja nadal męczyłbym się z register_sidebar_widget();
ja w sumie też, ale czasem jak mnie rutyna zżera to sprawdzam inne rozwiązania 🙂