Crearea de widget-uri WordPress. Cum se creează widgeturi pentru WordPress
Dacă ați folosit vreodată WordPress pentru a crea site-uri web, probabil că ați folosit pluginuri care extind funcționalitatea acestui sistem minunat. Pluginuri - Unealtă puternică, ceea ce face WordPress foarte flexibil și potrivit pentru crearea oricărui site web, nu doar bloguri.
Dacă aveți nevoie de o galerie, Formular de contact sau altceva, atunci probabil că există un plugin pentru asta pe care îl puteți descărca și utiliza. Dar uneori nu există un plugin adecvat printre pluginurile existente. În acest articol vom realiza un mic plugin care va adăuga propriul nostru widget la WordPress.
Fișierul principal de plugin
WordPress recunoaște automat pluginurile aflate în folder wp-content/plugin-uri. Pentru a crea un plugin nou, trebuie să creați dosar nouîn acest director. Numele acestui subfolder poate fi orice, dar este mai bine să denumești folderul cu numele pluginului tău. Încercați să evitați cuvintele comune precum „textwidget” sau „shoppingcart” deoarece... aceste nume pot fi deja luate și pot cauza probleme dacă intenționați să eliberați pluginul pentru acces general(mai multe despre denumire în articol). Pentru exemplul nostru, să creăm un folder php_examplewidget.
WordPress recunoaște pluginul disponibil după comentariul situat în principal fișier PHP conecteaza. Acest comentariu ar trebui să conțină informații de bază despre pluginul dvs.: scopul pluginului, numele autorului, informații despre licență etc. Aceste informații ajută sistemul să identifice pluginul. Să-l creăm într-un folder php_examplewidget fişier widget_init.php cu urmatorul continut:
Acesta este un minim necesar pentru orice plugin WordPress. Acum accesați pagina dvs. de pluginuri în WordPress și veți vedea că pluginul dvs. este recunoscut și gata pentru a fi activat:
După cum puteți vedea, toate informațiile pe care le-ați scris în comentariu sunt afișate aici. Pluginul poate fi deja activat, dar este mai bine să-i adăugați unele funcționalități.
Fișierul pe care tocmai l-am creat este punctul de plecare pentru pluginul dvs. Codul aflat după comentariu va fi executat automat.
Widgeturi în WordPress
WordPress are o clasă WP_Widget , care oferă acces la API-ul widget. Când moșteniți această clasă, widgetul dvs. va fi disponibil pentru orice bară laterală acceptată de tema dvs. WordPress vine deja cu unele widget-uri, de exemplu „Postări recente” sau „Arhivă”, ele moștenesc și clasa WP_Widget .
Clasă WP_Widget conține patru metode care trebuie supraîncărcate:
- __construi()— apelează constructorul părinte și inițializează widget-ul.
- formă()— afișează un formular pentru configurarea widget-ului.
- Actualizați()— actualizarea setărilor widgetului care au fost specificate în formular de administrator.
- widget()— afișarea pluginului pe site.
Constructor
Constructorul nu este diferit de cei pe care îi scrieți de obicei. Principalul lucru de făcut este să apelați constructorul părinte, care are trei argumente: ID-ul widget-ului, numele widget-ului (acest nume va fi afișat pe pagina de widget-uri) și o matrice cu alte detalii widget (ai nevoie doar de "Descriere"):
„Un widget simplu pentru a arăta cum funcționează pluginurile WP”); ) )
Acum trebuie să înregistrați widget-ul. Pentru a face acest lucru, utilizați funcția register_widget() , care ia ca argument numele clasei widget-ului dvs. Această funcție trebuie apelată la un moment specific, așa că trebuie să folosim . Cârligul de care avem nevoie se numește „widgets_init”. Pentru a conecta înregistrarea widgetului cu un cârlig, vom folosi funcția add_action() , care are două argumente: primul este numele cârligului, al doilea este numele funcției de executat (al doilea argument poate fi un șir sau o închidere). Acest cod ar trebui să fie localizat după comentariul din fișier widget_init.php:
Add_action("widgets_init", function () ( register_widget ("TextWidget"); ));
Acum că pluginul dvs. este înregistrat și inițializat, îl puteți vedea pe pagina de widget-uri.
metoda form().
Widgetul pe care îl facem ar trebui să ne permită să introducem un titlu și un text care să fie afișat pe paginile site-ului. Pe baza acestui lucru, trebuie să creăm un formular pentru a introduce aceste valori. Metodă formă() folosit pentru a afișa setările widget-urilor pe pagina de widget-uri. Metoda are un singur argument - $instanţă — o serie de variabile asociate cu widget-ul. Când formularul este trimis la server, metoda va fi apelată Actualizați() și vom putea actualiza variabilele din matrice $instanţă . După, metoda widget() va folosi această matrice pentru a afișa widget-ul.
Formularul funcției publice($instanță) ( $titlu = ""; $text = ""; // dacă instanța nu este goală, obțineți valorile dacă (!empty($instanță)) ($titlu = $instanță[" titlu"]; $text = $instanță["text"]; ) $tableId = $this->get_field_id("titlu"); $tableName = $this->get_field_name("titlu");
"; ecou"
"; $textId = $this->get_field_id("text"); $textName = $this->get_field_name ("text"); echo "
"; ecou" ";
}
Metode get_field_id() Și get_field_name() clasă WP_Widget sunt folosite pentru a genera nume și ID-uri unice pentru câmpurile pluginului dvs. Folosirea acestor metode ajută la evitarea conflictelor.
Aspectul formularului widget pe pagina de widget-uri:
Element părinte