PHP u WordPress-u

Kako da koristite PHP u WordPress-u

Kao što znate PHP je jedan od najzastupljenijih programskih jezika. Dakle, najviše procesiranja PHP koda se dešava na vašem serveru. Kad god posetilac dođe na stranicu koja sadrži PHP, taj kod se procesira od strane PHP modula koji je instaliran na vašem web serveru (Apache, nginx, LiteSpeed). Pre-procesor tada generiše HTML izlaz i šalje ga browser-u posetioca.

Deo svoje popularnosti PHP može da zahvali činjenici da se on korisiti od strane različitih CMS-ova, uključujući i WordPress. U stvari, najveći deo core-a WordPress-a je napisan u PHP-u. Ukoliko preuzmete i otpakujete kopiju WordPresss core fajlova, videćete veliki broj PHP fajlova.

PHP i WordPress

Kada neko poseti vaš WordPress sajt, server će pokrenuti PHP kod koji se nalazi u fajlovima vaše teme i core fajlovima WordPress-a, kao i u plugin-ima koji su instalirani na vašem sajtu. Kada server završi procesiranje PHP koda, on će isporučiti HTML kod browser-u posetioca.

To znači da će posetioci uvek videti procesuirani HTML kod, a nikada PHP koji zapravo pokreće vaš sajt.

Kako i kod drugih programskih jezika, postoji mnogo različitih verzija PHP-a. U vreme pisanja ovog teksta aktuelna verzija je 8.1. Pritom su sve verzije pre 7.3 u EOL statusu (end-of-life). To znači da za te verzije PHP developeri više ne izdaju ažuriranja i sigurnosne zakrpe za starije verzije. Zato je dobra praksa da izbegavate verzije pre 7.3.
Zašto je PHP važan za vlasnike web sajtova

Nije neophodno da budete PHP developer da biste vodili uspešan WordPress sajt. WordPress nudi mnogo opcija i funkcionalnosti za pravljenje dobrog sajta, pa za najveći deo njegovih funkcionalnosti nije uopšte potrebno da znate PHP. Ipak, nije na odmet da znate nešto PHP-a, jer to može samo da pomogne.

Na primer, ako želite da izmenite neka podrazumevana ponašanja WordPress-a, potrebne su vam bar neke osnove PHP-a da biste uradili željena podešavanja / prilagođavanja. WordPress podržava veliki broj hook-ova, klasa i funkcija koje možete da koristite da proširite ovu platformu na željeni način.

Takođe, ukoliko želite da razvijete sopstvenu WordPress temu ili plugin, ponovo je potrebno da znate PHP. Dodatno, mnoge teme i plugini su open-source, pa ih slobodno možete menjati i prilagođavati svojim potrebama, ukoliko znate PHP. Čak i ako ne nameravate da bilo šta radite sa svojim temama ili pluginima, dobro je da znate kako da ih po potrebi prilagodite.

Kako da pišete PHP kod i funkcije

Namera ovog teksta nije da postanete PHP developer. Ipak, dobro je da naučite nekoliko osnovnih stvari vezano za sintaksu. Za početak, PHP kode je zaokružen tagovima. Na primer:

<?php echo 'Hello World'; ?>

Ovde definišemo string koji je sekvenca karaktera. U PHP-u razlikujemo string od ostatka koda koristeći ili singl ili dvostruke navodnike. Na primer:

'Ovo je PHP'

Načelno, svaka linija koda se završava sa ;

U primeru iznad mi koristimo ?> tag za zatvaranje. Iako ćete koristiti ovaj tag kroz vaš PHP kod, dobra je praksa da ne koristite tag za zatvaranje na kraju vašeg fajla.

Iako ima neke interakcije između HTML-a i PHP-a, važno je da razlikujete ova dva jezika, tako što ćete korisititi odgovarajuće tagove.

Na primer, fajl koji sadrži i HTML i PHP može izgledati slično ovome:

<html>
<?php echo 'Hello World'; ?>
</html>

Još jedan fundamentalni element PHP-a su funkcije. Njih definišete koristeći sledeću strukturu:

function nazivFunkcije() {
kod koji treba da se izvrši;
}

Naziv funkcije mora da počne ili slovom ili donjom crtom (_).

Evo primera jedne jednostavne funkcije:

<?php
function displayMsg() {
echo "Hello World";
}

displayMsg();
?>

Ovde kreiramo funkciju pod nazivom displayMsg. Ova funkcija će izbaciti vrednost Hello World. Da bismo pozvali ovu funkciju, jednostavno ćemo napisati naziv funkcije a zatim i zagrade. Iako se ovo može činiti kao jednostavan primer, istu ovu strukturu možete primeniti na mnogo kompleksnije PHP funkcije. Funkcije unutar zagrada imaju svoje argumente, koje očekuju. Ako argumenata nema, izvršava se sama funkcija.

Dobra praksa vezano za PHP kod

S obzirom da je jedan od najzastupljenijih programskih jezika, PHP je vrlo često meta hakera. Ako neko zlonameran otkrije ranjivost u PHP kodu, on bi to mogao da iskoristi za napad na više WordPress sajtova.

Da biste bili bezbedni, dobra praksa je da koristite poslednju verziju PHP-a. Verziju PHP-a po potrebi možete promeniti i na vašem web serveru. Ukoliko koristite deljeni (shared) hosting to možete uraditi preko svog cPanel naloga.

Kada pišete svoj custom PHP kod, možete se zaštititi od Cross-Site Scripting (XSS) napada, tako što ćete očistiti vaše podatke. PHP-ova funkcija filter_var sadrži indikatore koji vam omogućavaju da proverite sve podatke postavljene od strane korisnika. Možete da uklonite sve vrednosti koje nisu očekivanog tipa. Takođe, možete koristiti PHP-ove funkcionalnosti za validaciju, da biste obezbedili da vrednosti postavljene od strane korisnika budu u skladu sa onim što očekujete.

Poruke sa greškama (error messages) mogu biti veoma korisne kada testirate svoj web sajt, ali haker može da iskoristi te poruke da bi pribavio važne informacije o vašem sajtu. Iz tog razloga je dobra praksa da sakrijete poruke sa greškama, pre nego što podignete svoj sajt u produkciono okruženje.

Da biste isključili ovu potencijalnu rupu u vašem sistemu, ulogujete se na svoj cPanel i odaberite sekciju pod nazivom Files, a zatim pokrenite File Manager.

Zatim idite do vašeg wp-admin foldera i otvorite php.ini fajl. Da biste isključili logovanje grešaka, jednostavno dodajte sledeći tekst u vaš fajl:

display_errors=Off

Kako da dodate PHP funkcije pomoću WordPress plugina

Podrazumevano, WordPress neće izvršiti PHP kod unutar stranice ili posta. Ukoliko želite da dodate custom PHP kod na određenu stranicu ili post, možete da koristite plugin pod nazivom Insert PHP Code Snippet.

Ovaj plugin predstavlja centralno mesto gde možete definisati svaki PHP snippet. Nakon što ga definišete možete ga umetnuti bilo gde u vaš sajt, koristeći automatski generisan shortcode.

Nakon što instalirate i aktivirate Insert PHP Code Snippet plugin idite na opciju XYZ PHP Code – PHPCode Snippets:

php u wordpress-u

Na sledećoj strani izaberite opciju Add New PHP Code Snippet. U polje za unos coda možete da unesete ili zalepite PHP funkciju koju želite da koristite:

php u wordpress-u

 

U polje Tracking Name unesite naziv vašeg snippet-a. On će predstavljati vašu PHP funkciju kroz WordPress Dashboard, pa je dobra ideja da izaberete neko ime po kojoj ćete je razlikovati. Takođe, možete koristiti ovo ime kada pozivate ovaj snippet ručno. Kada ste završili sa davanjem naziva, kliknite na dugme Create.

Sada možete dodati PHP snippet na bilo koju stranu ili post pomoću shortcode-a. Da biste pristupili ovom shortcode-u, idite na XYZ PHP Code – PHPCode Snippets. Možete pronaći željeni shortcode i kopirati ga:

php u wordpress-u

Sada otvorite stranicu ili post gde želite da ubacite pridruženi PHP. Sada možete kreirati new shortcode block:

Jednostavno zalepite shortcode u ovaj blok i sačuvajte svoje izmene. Ovaj custom PHP će sada biti instaliran na određenoj strani ili postu.

Kako da uklonite PHP funkcije sa stranice ili posta

U nekom trenutku možda ćete želeti da uklonite custom PHP snippete sa svog sajta. Možda više ne želite da se određena funkcija pokreće na vašoj stranici ili postu.

Ukoliko želite da uklonite funkciju sa određene stranice ili posta jednostavno otvorite tu stranicu u edit mode-u, pronađite shortcode koji želite i obrišite ga. Alternativno, možete da deaktivirate PHP snippet bez da ga uklonite sa stranice ili posta. To može biti zgodno ako postavljate isti snippet na nekoliko mesta na sajtu i želite da jednostavno deaktivirate svaku lokaciju gde se on pojavljuje.

Da biste privremeno onemogućili snippet idite na XYZ PHP Code – PHPCode Snippets. Sada možete da pronađete snippet i kliknite na pridruženo dugme Pause.

Druga opcija je da obrišete funkciju iz plugina Insert PHP Code Snippet. To može značajno uštedeti vreme, ako ste isti snippet koristili više puta i želite da ga trajno uklonite sa svake stranice / posta gde ste ga instalirali.

Da biste obrisali snippet idite na XYZ PHP Code – PHPCode Snippets. Sada locirajte snippet koji želite da uklonite sa svog sajta i kliknite na pridruženo dugme Delete.
Kako da dodate PHP funkcije bez plugina

Ukoliko želite da primenite custom PHP bez instaliranja još jednog plugina, onda je rešenje da kreirate child temu. Pre nego što nastavimo sa narednim koracima, predlažemo da uradite backup svog WordPress sajta, da biste po potrebi mogli lako da vratite sve na prethodno stanje.

Kreirajte Child temu

Možete da kreirate child temu preko SFTP-a, koristeći FTP klijent poput FileZilla-e. Nakon što se ulogujete na svoj sajt, prvo što treba da uradite je da kreirate novi folder za vašu child temu.

U FileZilla-i idite na wp-content/themes i kreirajte novi folder. Kada dajete naziv svom folderu predlažemo da koristite naziv vaše parent teme uz dodatak -child.

Sledeći korak je da kreirate style sheet (CSS fajl). Ovaj fajl će sadržati kod koji određuje dizajn vašeg sajta. Prilikom kreiranja ovog fajla, pobrinite se da mu date ime style.css.

Da biste kreirali privlačnu child temu, trebalo bi da napišete prilično koda. Ipak, ukoliko želite da kreirate samo osnovnu child temu da biste kreirali svoju custom PHP funkciju, dovoljno je da koristite primer koji je naveden i u WordPress Codex-u:

/*
Theme Name: Twenty Fifteen Child
Theme URI: https://example.com/twenty-fifteen-child/
Description: Twenty Fifteen Child Theme
Author: John Doe
Author URI: https://example.com
Template: twentyfifteen
Version: 1.0.0
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Tags: light, dark, two-columns, right-sidebar, responsive-layout, accessibility-ready
Text Domain: twentyfifteenchild
*/

Sada bi trebalo da kreirate functions.php fajl, u koji ćete dodati sve funkcionalnosti u vašu temu. Nakon kreiranja ovog fajla, otvorite ga u svom tekst editoru i dodajte sledeći kod:

<?php
add_action( 'wp_enqueue_scripts', 'enqueue_parent_styles' );
function enqueue_parent_styles() {
wp_enqueue_style( 'parent-style', get_template_directory_uri().'/style.css' );
}

U ovom snippet-u nasleđujemo informacije iz parent style sheet-a. Sada kada imate sve elemente na mestu, idite na Appearance – Themes u WordPress dashboard-u. Ovde bi trebalo da vidite svoju child temu. Ukoliko ste zadovoljni izgledom svoje child teme, aktivirajte je.

Dodajte PHP funkciju

Sledeći korak je dodavanje vaših custom PHP funkcija u vašu child temu. U vašem WordPress dashboard-u idite na Appearance – Theme Editor. Zatim otvorite Select theme to edit iz dropdown-a i izaberite svoju child temu.

Iz menija sa leve strane izaberite functions.php fajl. Sada možete dodati sve vaše PHP funkcije u ovaj fajl.

Hajde sada na brzinu da kreiramo jednostavnu funkciju koja će prikazati neki tekst. Da biste ovo uradili koprajte i zalepite sledeći kod:

function test_func( $atts ){
return 'This is a PHP function' ;
}
add_shortcode( 'test', 'test_func' );

Zatim možete da izaberete Update File. Sada možete pozvati ovu PHP funkciju koristeći definisan shortcode. U primeru iznad, setovali smo shortcode kao test.

U vašem WordPress dashboard-u idite na stranicu ili post gde želite da pozovete ovu PHP funkciju. Zatim kreirajte novi shortcode blok i dodajte svoj shortcode:

Sada možete da sačuvate izmene i idite na stranicu koju ste upravo editovali. String iz vaše test funkcije bi trebalo da se pojavi na ovoj stranici

Ovo je samo jednostavan primer. WordPress podržava veliki opseg funkcija koje možete koristiti da biste prilagodili i proširili svoju novu child temu. Kompletnu biblioteku svih ovih funkcija možete naći unutar WordPress Codex-a.

Zašto je dobra praksa da dodate PHP funkcije ručno?

Plugini mogu da budu jednostavan i brz način za umetanje PHP funckija na vaše WordPress stranice ili postove. Ipak, ukoliko ove funkcije ubacujete samo ponekad ili samo na određenim mestima, onda je možda nepotrebno za to instalirati i aktivirati plugin, sa svim njegovim kodom.

Takođe, WordPress plugini često predstavljaju izvor potencijalnih sigurnosnih ranjivosti. Samo tokom 2021. otkriveno je skoro 4.000 poznatih ranjivosti u WordPress plugin-ima. To predstavlja zaista ozbiljan rizik po svaki WordPress sajt.

Zato je dobra praksa da, kada god je to moguće, umesto plugina koristite neki drugi način za dodavanje / modifikaciju koda na vašem WordPress sajtu.

Zaključak

Videli ste da nije neophodno da znate PHP da biste mogli da radite neka osnovna prilagođavanja svog WordPress sajta. Ipak, ukoliko želite da radite neka naprednija podešavanja, a pritom vam je potrebno da to često menjate, onda je svakako preporuka da u određenoj meri naučite PHP.

Ko zna, možda vam se i dopadne, pa počnete sami da kreirate svoje WordPress teme i plugine.

Slični postovi:

Bez komentara

Оставите одговор

Ваша адреса е-поште неће бити објављена. Неопходна поља су означена *