Kako da sami napravite WordPress plugin
WordPress ima ogromnu kolekciju plugin-ova koji nude neke dodatne funkcionalnosti.
Kao što verovatno već znate, plugini predstavljaju brzo i lako rešenje kada treba da dodate neku novu funkcionalnost vašem WordPress sajtu, jer vam omogućavaju da to uradite bez promene osnovnog WordPress koda.
Iako je kolekcija dostupnih plugin-a zaista velika, nekada se može desiti da vam je potrebna neka funkcionalnost za koju trenutno ne postoji plugin.
Takođe može se desiti da vam dostupan plugin, pored potrebne funkcionalnosti, donosi i dosta drugih koje vam nisu potrebne ili pak da vam dosta usporava sajt. U takvoj situaciji ćete možda poželeti da sami napravite svoj plugin.
Iako možda na prvi pogled deluje da je ovo komplikovano, ukoliko ispratite naše upustvo, videćete da to i nije toliko teško. Potrebno je samo malo poznavanja koda i dobre volje da naučite nešto novo.
Takođe, u ovom tekstu ćemo ukratko objasniti i koja je razlika između WordPress plugin-a i WordPress teme i kako oni funkcionišu. Ovo će vam pomoći da bolje razumete strukturu i funkcionalnost plugin-a, što je i osnovni cilj ovog teksta.
Šta vam je potrebno da biste napravili WordPress plugin?
Da biste napravili svoj WordPress plugin potrebno vam je samo nekoliko stvari:
- tekst editor (bilo koji editor koda)
- pristup vašem cPanel nalogu
- aktivna WordPress instalacija
Tekst editor vam je neophodan da biste mogli da pišete svoj kod za plugin. Jedan od najpopularnijih kod editora, koji i mi toplo preporučujemo je Visual Studio Code. U pitanju je tekst editor koji obiluje raznim korisnim funkcionalnostima i uz sve to je potpuno besplatan.
Ukoliko se do sada niste upoznali sa ovim sjajnim kod editorom, pročitajte Visual Studio Code vodič za početnike.
Naravno, možete izabrati i bilo koji drugi kod editor po želji. Vaš kod će raditi podjednako dobro sa bilo kojim kod editorom.
Pristup cPanel nalogu možete obezbediti direktno, preko vašeg browser-a, ili putem nekog FTP/SFTP klijenta.
Ukoliko niste sigurni koji FTP/SFTP klijent najbolje odgovara vašim potrebama pročitajte koji su to najpopularniji FTP/SFTP klijenti. To će vam pomoći da se opredelite za onaj koji vam najviše odgovara.
Što se tiče WordPress instalacije, naša je preporuka da instalirate WordPress na lokalnom (localhost), a ne na produkcionom serveru. Na taj način ćete moći da radite na miru, bez brige da ćete nešto pokvariti na svom produkcionom sajtu.
Ukoliko niste sigurni kako, pročitajte Kako da instalirate WordPress na lokalnom računaru (local server/localhost).
Imajte u vidu da nije neophodno da imate iskustva u pisanju PHP koda, ali je poželjno, jer ćete tako lakše razumeti šta radimo i kako da to primenite na svom sajtu.
Ne brinite ukoliko nemate iskustva u pisanju koda. Mi ćemo vam pomoći da bez obzira na nedostatak iskustva u tome, kreirate svoj prvi funkcionalni plugin.
Razlika između WordPress plugin-a i WordPress teme
Funkcionalnost WordPress sajta može biti promenjena preko WordPress plugin-a ili preko WordPress teme. Kod WordPress tome to radite preko functions.php fajla.
Iako je izmena funkcionalnosti preko functions.php fajla moguća, ona nije praktična ukoliko vam je potrebna neka značajnija izmena funkcionalnosti koja treba da ima uticaj na ceo sajt.
Ovo je pre svega zbog toga što funkcionalnost sačuvana u functions.php fajlu zavisi od toga da li je ta tema trenutno aktivna ili nije. Ukoliko nije, ni ta funkcionalnost neće biti aktivna.
Dodatno, deaktivacijom te konkretne teme, sve izmene će biti vraćene na prethodno stanje, pa će to izazvati grešku na vašem sajtu.
Isto tako, ukoliko ne koristite child temu, kod prvog sledećeg update-a teme čiji ste kod modifikovali putem functions.php fajla, biće pregažen i sam kod functions.php fajla, što će izbrisati vaše izmene unutar tog njega.
Sa druge strane, nove funkcionalnosti dodati putem WordPress plugin-a će raditi i kada promenite WordPress temu. Takođe, u slučaju update-a teme funkcionalnosti unutar plugin-a neće biti pregažene i ostaće aktivne i nakon update-a.
Šta su WordPress udice (hooks)?
WordPress plugin ostvaruje interakciju sa WordPress core fajlovima putem takozvanih udica (hooks). Postoje dva tipa WordPress udica:
- Action hooks – dodaju ili uklanjaju funkcionalnost
- Filter hooks – modifikuju podatke proizvedene od strane funkcija
Akcije i Action hooks
Akcija je PHP funkcija koja se poziva preko posebnog action hook-a kada korisnik poseti WordPress web sajt. Web developeri mogu da dodaju svoje funkcije na listu akcija ili uklone postojeće dodavanjem wp_head()
action hook skriptu pre </head>
closing taga bilo koje stranice.
Action hooks se ne pozivaju od strane svih WordPress stranice. Ukoliko želite da vidite celu listu action hooks-a i kontektsta u kojima se pozivaju, predlažemo da odete na WordPress Plugin Action Reference stranicu.
Dodavanje funkcija action hook-u korišćenjem add_action()
Dodavanje funkcija action hook-u u plugin fajlu zahteva pozivanje add_action()
funkcije sa najmanje dva parametra.
// Zakaci se na 'init' akciju, koja se poziva nakon što WordPress završi učitavanje osnovnog koda
add_action( 'init', 'add_Cookie' );
// Postavi kolačić sa trenutnim vremenom dana
function add_Cookie() {
setcookie("last_visit_time", date("r"), time()+60*60*24*30, "/");
}
Ovo je WordPress PHP kod koji se koristi za postavljanje kolačića (cookie) na korisnikovom pretraživaču. Hajde da objasnimo red po red šta ovaj kod radi:
add_action
( ‘init’, ‘add_Cookie’ );- Ovo povezuje funkciju
add_Cookie
sa init akcijom u WordPress-u. init akcija se poziva nakon što je WordPress učitao sav osnovni kod.
- Ovo povezuje funkciju
- function
add_Cookie
() {- Ovo definiše funkciju pod nazivom
add_Cookie
.
- Ovo definiše funkciju pod nazivom
setcookie
(“last_visit_time”, date(“r”), time()+60*60*24*30, “/”);- Ova linija postavlja kolačić sa imenom last_visit_time.
- Vrednost kolačića je trenutni datum i vreme, formatiran u RFC 2822 datumskom formatu pomoću date(“r”).
- Kolačić će isteći za 30 dana od trenutnog vremena (time()+60*60*24*30).
- Kolačić je dostupan u celom domenu (“/”).
Kada se ovaj kod izvrši, svaki put kada korisnik poseti vašu WordPress stranicu, postaviće se kolačić sa trenutnim datumom i vremenom, koji će važiti 30 dana.
U WordPress-u se add_action
funkcija koristi za dodavanje funkcije na određeni action hook. Ova funkcija može imati opcione parametre koji omogućavaju dodatnu kontrolu nad tim kako se akcija izvršava. Hajde da detaljnije objasnimo opcione parametre add_action
funkcije:
add_action
( $hook, $function_to_add, $priority, $accepted_args );
1. $hook
(string) (obavezan)
– Naziv action hook-a na koji želite da povežete svoju funkciju.
2. $function_to_add
(callable) (obavezan)
– Ime funkcije koju želite da povežete sa hook-om. Ovo može biti naziv funkcije, metoda klase ili anonimna funkcija.
3. $priority
(integer) (opciono)
– Prioritet određuje redosled u kojem će se funkcije izvršavati. Funkcije sa nižim prioritetom se izvršavaju pre funkcija sa višim prioritetom. Podrazumevana vrednost je `10`.
4. $accepted_args
(integer) (opciono)
– Broj argumenata koji će biti prosleđeni funkciji. Podrazumevana vrednost je `1`. Ako vaša funkcija očekuje više argumenata, morate navesti odgovarajući broj.
Evo primera koji koristi sve opcione parametre:
add_action( 'init', 'my_custom_function', 20, 2 );
function my_custom_function( $arg1, $arg2 ) {
// Vaš kod ovde
}
U ovom primeru:
– Funkcija my_custom_function
će biti povezana sa init
hook-om.
– Prioritet izvršavanja funkcije je postavljen na `20`.
– Funkcija my_custom_function
će primiti dva argumenta.
Dodatno pojašnjenje:
– Prioritet: Ako imate više funkcija povezanih sa istim hook-om, prioritet omogućava kontrolu nad redosledom njihovog izvršavanja. Na primer, funkcija sa prioritetom `5` će se izvršiti pre funkcije sa prioritetom `10`.
– Broj prihvaćenih argumenata: Ovo je korisno kada action hook prosleđuje više argumenata vašoj funkciji. Ako vaša funkcija očekuje više od podrazumevanog jednog argumenta, morate navesti koliko argumenata funkcija prihvata.
Korišćenje ovih opcionih parametara omogućava precizniju kontrolu nad time kako i kada se vaša funkcija izvršava u WordPress-u.
Primer plugin koda koji na svakoj stranici prikazuje tekst ispod fotter-a
Ovaj primer plugin-a poziva wp_footer()
action hook pre </body>
closing taga na svakoj stranici i dodaje novu funkciju pod nazivom mfp_Add_Text()
. S obzirom da je deo plugin-a, ova funkcija će raditi i ukoliko menjate teme.
<?php
/*
Plugin Name: Dodaj tekst u footer
*/
// Zakaci se na 'wp_footer' akciju, dodaj funkciju pod nazivom 'mfp_Add_Text'
add_action("wp_footer", "mfp_Add_Text");
// Definiši 'mfp_Add_Text'
function mfp_Add_Text()
{
echo "<p style='color: black;'>Nakon što se footer učita, moj tekst je dodat!</p>";
}
?>
Sada ovako napisan kod sačuvajte kao PHP fajl i preko cPanel-a upload-ujete na svoj web server.
Treba da ga smestite u folder pod nazivom Plugins. Ovaj folder ćete pronaći u /wp-content direktorijumu vašeg web sajta. Najčešće je to lokacija public_html/wp-content/plugins
u okviru koje se nalaze i drugi WordPress folderi.
Nakon što fajl upload-ujete na svoj web server, ulogujete se na admin dashboard svog WordPress sajta i aktivirajte plugin.
Napomena: imajte u vidu da PHP proverava celu skriptu pre nego što je izvrši. Postavljanjem poziva add_action()
funkcije na vrh fajla, a zatim i definisanjem vaših funkcija u nizu ispod, će olakšati čitanje vašeg koda.
Uklanjanje funkcija iz action hook-a pomoću remove_action()
Da biste uklonili akciju iz action hook-a, potrebno je da napišete novu funkciju remove_action()
i zatim pozovete funkciju koju ste napisali korišćenjem add_action()
.
Funkcija remove_action()
treba takođe da sadrži najmanje dva parametra.
// Zakaci se na 'init' akciju, koja se poziva nakon što WordPress završi učitavanje osnovnog koda, dodaj funkciju 'remove_My_Meta_Tags'
add_action( 'init', 'remove_My_Meta_Tags' );
// Ukloni funkciju 'add_My_Meta_Tags' iz 'wp_head' akcije
function remove_My_Meta_Tags()
{
remove_action( 'wp_head', 'add_My_Meta_Tags');
}
Prvi parametar je naziv action hook-a kom je funkcija prikačena, dok drugi parametar sadrži naziv funkcije koju želite da uklonite.
Treći opcioni parametar određuje prioritet originalne funkcije. Mora biti identičan prioritetu koji je originalno definisan prilikom dodavanja akcije na action hook.
Ako niste definisali prioritet u prilagođenoj funkciji, nemojte da uključujete ovaj parametar.
U sledećem primeru ćemo sprečiti pojavljivanje dodatnog teksta u footer-u na postovima objavljenim ponedeljkom.
Jedan način da to uradimo je korišćenjem PHP funkcije date()
za dobijanje trenutnog dana, a zatim uslovnim tagovima da proverimo da li je ponedeljak. Nakon parsiranja informacija, stranica će izvršiti funkciju remove_action()
u svakom postu objavljenom ponedeljkom.
<?php
// Zakaci se na 'wp_footer' akciju, pokreni funkciju pod nazivom 'mfp_Add_Text()'
add_action("wp_footer", "mfp_Add_Text");
// Zakaci se na 'wp_head' akciju, pokreni funkciju pod nazivom 'mfp_Remove_Text()'
add_action("wp_head", "mfp_Remove_Text");
// Definiši funkciju pod nazivom 'mfp_Add_Text()', koja jednostavno ispisuje tekst
function mfp_Add_Text()
{
echo "<p style='color: #FFF;'>Nakon što se footer učita, moj tekst je dodat!</p>";
}
// Definiši funkciju pod nazivom 'mfp_Remove_Text()', koja uklanja našu prethodnu funkciju iz 'wp_footer' akcije
function mfp_Remove_Text()
{
if (date("l") === "Monday") {
// Ciljaj 'wp_footer' akciju, ukloni funkciju 'mfp_Add_Text' iz nje
remove_action("wp_footer", "mfp_Add_Text");
}
}
?>
Filteri i Filter hooks
Filter je PHP funkcija pozvana od strane određenog filter hook-a koji modifikuje podatke vraćene od strane postojeće funkcije. Kao i action hooks i filter hooks su kontekstualni.
Kompletna lista filter hook-a i konteksta koje oni pozivaju su dostupni na stranici WordPress Plugin Filter Reference
Dodavanje filtera korišćenjem add_filter()
Dodavanjem filter
funkcije filter hook-u unutar plugin fajla, zahteva pozivanje add_filter()
funkcije sa najmanje dva parametra.
// Zakaci se na 'the_content' filter (sadržaj bilo kog posta), pokreni funkciju pod nazivom 'mfp_Fix_Text_Spacing'
add_filter("the_content", "mfp_Fix_Text_Spacing");
// Automatski ispravi duple razmake u bilo kom postu
function mfp_Fix_Text_Spacing($the_Post)
{
$the_New_Post = str_replace(" ", " ", $the_Post);
return $the_New_Post;
}
?>
Prvi parametar je naziv filter hook-a kome želite da dodate callback
, dok drugi parametar sadrži naziv funkcije koju želite da pokrenete kada se filter primeni.
Treći opcioni parametar određuje prioritet te funkcije. Podrazumevani prioritet je 10, što stavlja prilagođenu funkciju nakon svih podrazumevanih.
Četvrti opcioni parametar sadrži broj argumenata ili parametara koje prilagođena filter funkcija može da primi. Podrazumevana vrednost je 1.
Primer plugin-a za izmenu isečka posta
WordPress ima funkciju koja vraća isečke postova pod nazivom get_the_excerpt()
. Ona je takođe filter hook. Dodavanjem ovog filtera nakon dobijanja isečka izmeniće se tekst pre nego što ga WordPress sajt prikaže.
Sledeći primer plugin-a definiše filter funkciju koja uzima isečak kao jedini ulazni parametar, dodaje neki tekst pre njega, i vraća novu vrednost svaki put kada skripta pozove funkciju get_the_excerpt()
.
Pošto povratna vrednost funkcije get_the_excerpt()
predstavlja stvarni tekst isečka, plugin će automatski uneti novu vrednost kao parametar funkcije $old_Excerpt
kada se pozove koristeći add_filter()
. Funkcija koju plugin definiše mora da vrati novu vrednost.
<?php
/*
Plugin Name: Dodaj isečak
*/
// Zakaci se na 'get_the_excerpt' filter, pokreni funkciju pod nazivom 'mfp_Add_Text_To_Excerpt'
add_filter("get_the_excerpt", "mfp_Add_Text_To_Excerpt");
// Uzmi isečak, dodaj tekst pre njega, i vrati novi isečak
function mfp_Add_Text_To_Excerpt($old_Excerpt)
{
$new_Excerpt = "<b>Izvod: </b>" . $old_Excerpt;
return $new_Excerpt;
}
?>
Uklanjanje filtera pomoću remove_filter()
Uklanjanje filtera je mnogo jednostavnije od uklanjanja akcije, jer WordPress omogućava da pozovete funkciju remove_filter()
bez definisanja nove.
U sledećem primeru, uklonićemo dodatni tekst isečka ako je trenutni dan četvrtak. Koristićemo funkciju remove_filter()
sa najmanje dva parametra.
Prvi parametar treba da sadrži filter hook kojoj je funkcija prikačena. Drugi parametar treba da bude naziv filtera koji želite da uklonite. Dodajte parametar prioriteta ako ste ga definisali prilikom kreiranja funkcije.
// Zakaci se na 'get_the_excerpt' filter, pokreni funkciju pod nazivom 'mfp_Add_Text_To_Excerpt'
add_filter("get_the_excerpt", "mfp_Add_Text_To_Excerpt");
// Ako je danas četvrtak, ukloni filter sa 'the_excerpt()'
if (date("l") === "Thursday") {
remove_filter("get_the_excerpt", "mfp_Add_Text_To_Excerpt");
}
// Uzmi izvod, dodaj tekst pre njega, i vrati novi izvod
function mfp_Add_Text_To_Excerpt($old_Excerpt)
{
$new_Excerpt = "<b>Izvod: </b>" . $old_Excerpt;
return $new_Excerpt;
}
?>
Korak 1 – Upload plugin-a
Prvi korak u kreiranju novog plugin-a je pravljenje foldera za njegove fajlove. Naziv foldera treba da bude jedinstven i opisni. Proverite nazive ostalih foldera plugin-a unutar /wp-content/plugins/
kako biste bili sigurni da novi naziv već nije u upotrebi.
Upload fajlova možete raditi direktno preko vašeg cPanel naloga ili putem FTP/SFTP klijenta. Mi ćemo u ovom primeru prikazati kako to da uradite preko vašeg cPanel naloga. Idite na wp-content -> plugins iz glavnog WordPress direktorijuma. Zatim, kreirajte novi folder pod nazivom moj-novi-plugin u folderu Plugins.
Korak 2 – Kreiranje prvog fajla
Glavni fajl plugin-a će sadržati podatke koje WordPress zahteva da bi prikazao vaš plugin na listi plugin-a gde ćete moći da ga aktivirate.
Napravite novi PHP fajl pod nazivom moj-novi-plugin.php
u folderu koji ste napravili ranije. Ovaj glavni fajl plugin-a će sadržati komentare header-a sa dodatnim podacima koje WordPress treba da pročita ili prikaže.
Zatim, desnim klikom na fajl izaberite View/Edit da biste dodali sledeći kod koristeći HTML editor:
<?php
/*
Plugin Name: Moj novi plugin
Description: Ovo je moj prvi plugin! Dodaje novi link u admin dashboard-u!
Author: Nenad Mihajlovic
*/
?>
Sada sačuvajte fajl. Zatim, idite na odeljak Plugins u vašem WordPress admin dashboard-u.
Ako je WordPress ispravno pročitao novi fajl, videćete Moj novi plugin na listi.
Korak 3 – Pisanje funkcija plugin-a
Pre nego što počnemo sa pisanjem funkcija za plugin, preporučuje se da svim fajlovima, funkcijama i promenljivima date jedinstven prefiks u njihovom imenu kako biste izbegli konflikt sa drugim pluginima.
U našem primeru, koristićemo prefiks mnp, što je skraćenica za Moj novi plugin.
Napravite novi folder pod nazivom Includes u glavnom direktorijumu plugin-a.
Koristićemo ga za skladištenje pomoćnih fajlova koje koristi glavni fajl. U ovom folderu, napravite PHP fajl i nazovite ga mnp-functions.php
. Na prvoj liniji dodajte otvarajući <?php
tag.
Ovaj novi fajl će sadržati sve funkcije vašeg plugin-a.
Moramo uključiti mnp-functions.php
u glavni fajl plugin-a da bismo omogućili drugim fajlovima plugin-a da koriste funkcije koje on definiše. Koristite require_once
da osigurate da plugin radi samo ako je prisutan fajl sa funkcijama.
Izmenite myoj-novi-plugin.php
kao što je prikazano ispod. Zatim, sačuvajte ga i ponovo otpremite fajl, prepisujući prethodnu verziju kada vam to bude zatraženo.
<?php
/*
Plugin Name: Moj novi plugin
Description: Ovo je moj prvi plugin! Dodaje novi link u admin dashboard-u!
Author: Nenad Mihajlovic
*/
// Uključi 'mnp-functions.php', koristi require_once da zaustaviš skript ako 'mnp-functions.php' nije pronađen
require_once plugin_dir_path(__FILE__) . 'includes/mnp-functions.php';
?>
WordPress funkcija plugin_dir_path(__FILE__)
omogućava vam da uključite fajlove iz vašeg foldera plugin-a, dajući puni put do direktorijuma koji skladišti novi plugin.
Sada se vratite na fajl mnp-functions.php
u direktorijumu Includes. Pošto će naš plugin dodati novi link na najvišem nivou u navigacionom meniju WordPress admin dashboard-a, koristićemo prilagođenu funkciju pod nazivom mfp_Add_My_Admin_Link()
. Dodajte blok koda prikazan ispod u fajl mnp-functions.php
:
<?php
/*
* Dodaj moj novi meni u admin dashboard
*/
// Zakaci se na 'admin_menu' akciju, pokreni funkciju pod nazivom 'mnp_Add_My_Admin_Link()'
add_action( 'admin_menu', 'mnp_Add_My_Admin_Link' );
// Dodaj novi meni na najvišem nivou u admin dashboard-u
function mnp_Add_My_Admin_Link()
{
add_menu_page(
'Moja Prva Stranica', // Naslov stranice
'Moj Novi Plugin', // Tekst koji se prikazuje na meniju
'manage_options', // Potrebne privilegije za prikaz linka
'includes/mnp-first-acp-page.php' // 'slug' - fajl koji se prikazuje pri kliku na link
);
}
?>
Napomena: Grupisanje sličnih funkcija zajedno i dodavanje opisa iznad svake od njih koristeći višelinijske komentare će olakšati buduća ažuriranja plugin-a i otklanjanje grešaka.
mfp_Add_My_Admin_Link()
koristi ugrađenu WordPress funkciju add_menu_page()
sa najmanje četiri parametra u sledećem redosledu:
– Page title
‒ ime stranice prikazano na tab-u browser-a.
– Menu title
‒ tekst koji se koristi za stavku menija. U našem primeru, to je naziv plugin-a.
– Capability
‒ zahtevi za korisničke privilegije za prikaz menija plugin-a. Ovde samo korisnici sa mogućnošću upravljanja opcijama (manage_options) mogu pristupiti povezanoj stranici.
– Menu slug
‒ fajl koji se koristi za prikaz stvarne stranice. U sledećem odeljku ćemo kreirati fajl mfp-first-acp-page.php u folderu Includes.
– Function
(opciono)‒ funkcija koja prikazuje sadržaj stranice.
Dodavanje prilagođene funkcije koristeći add_action()
omogućava plugin-u da pozove action hook pod određenim okolnostima.
Dodavanje admin_menu
kao prvog parametra pozvaće funkciju kada korisnik pristupi admin meniju. U međuvremenu, mnp_Add_My_Admin_Link
je funkcija koja će se pokrenuti jer je navedena kao drugi parametar.
Na kraju, otpremite fajl plugin-a mnp-functions.php
u folder Includes.
Korak 4 – Kreiranje admin stranice plugin-a
Nakon definisanja funkcija plugin-a, vreme je da izgradimo stranicu na koju će nas odvesti dugme menija. Napravite novi PHP fajl pod nazivom mnp-first-acp-page.php
u podfolderu Includes i dodajte sledeći kod u njega:
<div class="wrap">
<h1>Hello!</h1>
<p>Ovo je početna stranica mog novog plugin-a</p>
</div>
Kada kreirate admin stranice, WordPress preporučuje da svoj HTML obuhvatite sa <div>
tagom i da mu dodelite klasu wrap
kako bi se osiguralo da se sav vaš sadržaj pojavljuje na pravom mestu. To takođe pomaže u smanjenju nereda u kodu.
Na kraju, idite na odeljak Plugins u vašem WordPress admin dashboard-u i aktivirajte novi plugin. Ako je proces uspešan, link za admin dashboard vašeg prvog plugin-a će se pojaviti na dnu navigacionog menija.
Čestitamo! Ovim ste ujedno kreirali svoj prvi WordPress plugin.
Standardi i dobre prakse prilikom kreiranja WordPress plugin-a
Kako se potrebe vašeg sajta stalno razvijaju, biće potrebno da povremeno revidirate kod plugina kako biste implementirali ažuriranja i sigurnosne zakrpe.
Imajući ovo na umu, sledite najbolje prakse za razvoj plugina od samog početka. To će olakšati ceo proces za vas i sve web developere s kojima ćete možda sarađivati u budućnosti.
Takođe, pogledajte najbolje primere WordPress plugin-a za inspiraciju. Pogledajte njihov izvorni kod, kako organizuju svoje foldere i druge prakse koje možete primeniti prilikom izrade WordPress plugin-a.
Evo nekih od najboljih praksi za kodiranje i razvoj plugin-a koje će vam pomoći u kreiranju vašeg prvog WordPress dodatka:
- Razvijajte i testirajte WP plugin-e u testnom okruženju. Na ovaj način neće biti rizika od problema na sajtu ako plugin ima grešku u kodu.
- Napravite logičnu strukturu foldera. Kreirajte podfoldere za svaku funkcionalnost i podelite kod u odvojene fajlove na osnovu njihove namene ili tipa jezika kako biste izbegli nered.
- Pažljivo imenujte svaki fajl, folder i element. Koristite jedinstvene prefikse kako se ne bi sukobili sa nazivima fajlova drugih plugin-a ili osnovnog WordPress-a.
- Dodajte komentare da označite svaku funkciju. To omogućava vama i drugim developerima da bolje razumeju vaš kod prilikom ažuriranja ili otklanjanja grešaka.
- Kreirajte dokumentaciju. Ova praksa je posebno korisna ako kreirate plugine sa složenom funkcionalnošću za veliki broj korisnika.
- Koristite softver za kontrolu verzija da pratite promene napravljene u vašem kodu. Znati ko je šta dodao pomoći će u sprečavanju sukoba između ažuriranja i smanjiće broj grešaka.
- Pozovite se na WordPress Codex za standarde kodiranja specifične za jezik. Uverite se da se pridržavate njih prilikom saradnje na projektu.
Aktivirajte WP_DEBUG
ili koristite alat za otklanjanje grešaka prilikom razvoja plugin-a. To će olakšati lociranje grešaka i ubrzati celokupan proces izrade plugin-a.
Zaključak
Kao što ste videli, kreiranje sopstvenog WordPress plugin-a nije toliko teško koliko se na prvi pogled čini. Potrebno je da se naoružate strpljenjem i pažljivo ispratite naše upustvo i savete koje smo dali u ovom tekstu. Ipak, najvažnije je da znate da pisanje koda nije nikakav bauk i da uz dovoljno volje i rešenosti možete da kreirate svoj prvi WordPress plugin. Verujemo da ćete biti ponosni na sebe, a ko zna, možda to bude i početak vaše nove karijere 🙂
Nenad Mihajlović