Crearea widget-uri personalizate WordPress

Crearea widget-urilor WordPress este la fel ca construirea unui plugin, dar este mai simplă și mai simplă. Tot ce trebuie să faceți este să aveți un singur fișier în care rulează tot PHP-ul și este mai ușor să codificați decât un plugin care poate avea mai mult de un fișier. Există trei funcții majore ale unui widget care poate fi împărțit în widget, Actualizați și formă.

  • funcția widget ()
  • actualizare funcție ()
  • forma funcției ()

Structură de bază

Schița de bază a widget-ului nostru este foarte simplă și există o mulțime de funcții pe care trebuie să le cunoașteți. Structura oaselor goale a widget-ului nostru este ceva de genul:

 add_action ('widgets_init', 'register_my_widget'); // funcția de a încărca funcția mea widget register_my_widget ()  // funcția de a înregistra clasa mea widget My_Widget extinde WP_Widget ()  // Funcția de clasă widget exemplu My_Widget ()  // Widget Settings widget ()  // afișați actualizarea funcției widget ()  // actualizați formularul funcției widget ()  // și, desigur, formularul pentru opțiunile widget

Pasul 1

Înainte de a face tot ceea ce vom încărca mai întâi widget noastre ori de câte ori este necesar de către funcția "widget_init"Acesta este un cârlig de acțiune și puteți afla mai multe despre el în codul WordPress.

 add_action ('widgets_init', 'register_my_widget');

Următorul lucru pe care îl vom face este înregistrarea widget-ului nostru în WordPress, astfel încât acesta să fie disponibil sub secțiunea widget-uri.

 funcția register_my_widget () register_widget ('My_Widget'); 

Pasul 2

Vom închide widgetul nostru într-o clasă. Numele clasei este important! Un lucru care trebuie avut în vedere este că numele clasei și numele funcției ar trebui să fie identice.

 clasa My_Widget extinde WP_Widget 

Acum vom trece câțiva parametri de setare în această clasă. De exemplu, putem trece această lățime și înălțime. Putem, de asemenea, să oferim widgetului nostru o mică descriere dacă vrem, ceea ce este util dacă îmbinați acest widget cu tema comercială.

 funcția My_Widget () funcția My_Widget () $ widget_ops = array ('classname' => 'example', 'description' => __ ('Un widget care afișează numele autorilor'; $ control_ops = array ('lățime' => 300, 'înălțime' => 350, 'id_base' => 'example-widget'); $ this-> WP_Widget ('exemplu-widget', __ ('Exemplar Widget', 'exemplu'), $ widget_ops, $ control_ops); 

Acum, că am îndeplinit cerințele de bază pentru widget-ul nostru, ne vom îndrepta atenția asupra celor trei funcții despre care am vorbit mai devreme, care sunt funcțiile importante sau principalele elemente de bază ale widget-ului nostru!


Pasul 3 Funcția Widget ()

Prima funcție este legată de afișarea widget-ului nostru. Vom trece câteva argumente pentru funcția widget. Vom trece argumente din tema, care poate fi un titlu și alte valori specifice. Apoi trecem variabila de instanță, care este legată de clasa funcției noastre.

 funcția widget ($ args, instanță $)

După aceea vom extrage valorile din argument deoarece dorim ca valorile să fie disponibile local. Dacă nu știți ce înseamnă această variabilă locală, nu vă îngrijorați acum și pur și simplu adăugați acest pas!

 extract ($ args);

În continuare, vom seta titlul și alte valori pentru widget-ul nostru, care pot fi editate de utilizator în meniul widget-uri. Vom include și variabilele speciale cum ar fi $ before_widget, $ after_widget. Aceste valori sunt tratate de temă.

 $ title = apply_filters ('widget_title', $ instanță ['title']); $ nume = $ instanță ['nume']; $ show_info = isset ($ instanță ['show_info'])? $ instanță ['show_info']: false; echo $ before_widget; // Afișează titlul widgetului dacă ($ title) echo $ before_title. titlul $. $ After_title; // Afișați numele dacă ($ name) printf ('

". __ ("Hei sailor lor! Numele meu este% 1 $ s.", "Example"). '

', nume $); dacă ($ show_info) printf ($ name); echo $ after_widget;

Pasul 4 Funcția de actualizare ()

Următoarea este funcția de actualizare. Această funcție va lua setările utilizatorului și le va salva. Acesta va actualiza doar setările în funcție de gustul utilizatorului.

 actualizare funcție ($ new_instance, $ old_instance) $ instanță = $ old_instance; // Eliminați etichetele din titlu și nume pentru a elimina instanța HTML $ ['title'] = strip_tags ($ new_instance ['title']); $ instanță ['name'] = strip_tags ($ new_instance ['name']); $ instanță ['show_info'] = $ new_instance ['show_info']; returnați $ instanță; 

Unul dintre lucrurile pe care trebuie să le menționăm este faptul că eliminăm valorile astfel încât orice XHTML să poată fi eliminat din text, ceea ce, cu cuvinte simple, ar putea afecta funcționarea widget-ului nostru.


Pasul 5 Funcția Formular ()

Următorul pas va schița crearea formei care va servi drept casetă de intrare. Acest lucru va avea loc în setările și valorile definite de utilizator. Funcția de formular poate include casete de selectare, casete de introducere text etc..

Înainte de a crea aceste câmpuri de intrare, va trebui să decidem ce să afișăm atunci când utilizatorul nu selectează nimic din widget. Pentru a face acest lucru vom trece câteva valori implicite, cum ar fi titlu, descriere etc.

 // Configurați unele setări widget implicite. $ defaults = array ('titlu' => __ ('Exemplu', 'exemplu'), 'nume' => __ ('Bilal Shaheen', 'exemplar'); $ instanță = wp_parse_args ((array) $ instanță, implicit $); ?>

Acum vom crea caseta text de intrare. Vom închide aceste opțiuni în eticheta anexată la paragraf.

 // Titlu widget: Intrare text 

"valoare =""/>

// Introducere text

"valoare =""/>

// Caseta de bifat

name =“get_field_name ('show_info'); ?> "/>

Concluzie

Si asta e. Tocmai v-ați făcut un widget foarte frumos și simplu care afișează numele autorului blogului. În plus, oferă utilizatorului posibilitatea de a-i arăta sau nu publicului public. Salvați codul într-un fișier PHP și încărcați-l în directorul tematic. Sunați-l în dvs. functions.php. După aceea, mergeți la panoul widgets și veți vedea noul widget creat.

Tot codul este inclus în fișierul de descărcare, ceea ce face mai ușor copierea și lipirea. A se distra!

Cod