Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [Wordpress] Wywołanie "widgets_init" w konstruktorze klasy
klapaucius
post
Post #1





Grupa: Zarejestrowani
Postów: 223
Pomógł: 3
Dołączył: 4.07.2009
Skąd: Kraków

Ostrzeżenie: (0%)
-----




Witam. Mam następujący problem. Próbuję w konstruktorze klasy wywołać akcję do haka "widgets_init". Oto mój kod:

  1. class Fwk_User extends Fwk {
  2.  
  3. public function __construct() {
  4. add_action('widgets_init', array(&$this, 'init_fwk_widget'));
  5. }
  6.  
  7. public function init_fwk_widget(){
  8. register_widget('Fwk_Widget');
  9. }
  10.  
  11. }


Jednak po tym w opcjach nie pojawia się mój widget.
Gdy to samo robię poza klasą:
  1. add_action('widgets_init', 'init_fwk_widget');
  2.  
  3. function init_fwk_widget(){
  4. register_widget('Fwk_Widget');
  5. }


to wszystko działa jak należy - widżet znajduje się w panelu admina.

Dlaczego jednak nie działa to wywoływane z konstruktora klasy? Dodam jeszcze, że gdy w owym konstruktorze użyję haka np. "wp_head", to zostaje on wywołany bez problemu. Natomiast "widgets_init" nie. Dlaczego?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 2)
adeptofvoltron
post
Post #2





Grupa: Zarejestrowani
Postów: 51
Pomógł: 2
Dołączył: 4.09.2013

Ostrzeżenie: (0%)
-----


widgets_init wywołuje ci funkcję init_fwk_widget...w której rejestrujesz widgeta.
dopiero w tym momencie tworzony jest obiekt...a więc dopiero w tym momencie wywoływany jest konstruktor.

Go to the top of the page
+Quote Post
klapaucius
post
Post #3





Grupa: Zarejestrowani
Postów: 223
Pomógł: 3
Dołączył: 4.07.2009
Skąd: Kraków

Ostrzeżenie: (0%)
-----


Cytat(adeptofvoltron @ 10.06.2014, 21:10:13 ) *
widgets_init wywołuje ci funkcję init_fwk_widget...w której rejestrujesz widgeta.
dopiero w tym momencie tworzony jest obiekt...a więc dopiero w tym momencie wywoływany jest konstruktor.


Szczerze nie bardzo rozumiem... Z tego wynika, że w funkcji, której rejestruję widget (init_fwk_widget) jest tworzony obiekt? Ale jaki obiekt? Obiekt całej klasy Fwk_User?
Ale nawet jeśli to co do ma do rzeczy - do tego, że akcja widgets_init nie zostaje wywołana?

Będę wdzięczny za dokładniejsze wytłumaczenie problemu.
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 23.08.2025 - 14:28