Najbolji način za dopuštanje dodataka za PHP aplikaciju. Umetanje PHP koda u WordPress putem widgeta Retreat plugin php

Sedma verzija PHP-a objavljena je nedavno 2015. Novi krug u razvoju ovog programskog jezika donio je brojne mogućnosti za sve one koji koriste PHP. Među prednostima nove verzije treba istaknuti brzinu. Dakle, prema programerima, brzina skripti u PHP 7, u usporedbi s prethodnim verzijama, gotovo se udvostručila. U tom smislu, mnogi vlasnici web stranica koji imaju instaliranu stariju verziju PHP-a žele prijeći na novu.

Zašto provjeravati kompatibilnost?

Treba napomenuti da prije promjene PHP verzije na noviju i bržu na upravljačkoj ploči vašeg hostinga morate provjeriti kompatibilnost WordPress stranice s njom, odnosno tema i dodataka. Ova potreba se javlja jer se obično u novim verzijama softvera neke funkcije dodaju, a neke u potpunosti prestaju postojati. Ako dodatak ili tema koristi funkcije ili metode koje ne postoje u novoj verziji, to je znak pogreške, koja može poremetiti rad web stranice u cjelini.

Kako provjeriti kompatibilnost s PHP 7.0? PHP dodatak za provjeru kompatibilnosti

Dodatak za provjeru kompatibilnosti PHP-a omogućuje vam skeniranje cijele stranice i označavanje koje njezine komponente (teme, dodaci) nisu kompatibilne s odabranom verzijom PHP-a. Najprije ga trebate instalirati i aktivirati, a zatim idite na admin panel Alati -> PHP kompatibilnost.

Kao što vidite, dodatak nudi vrlo jasne postavke. Za početak provjere potrebno je odabrati PHP verziju s kojom želite provjeriti kompatibilnost stranice (PHP Version block). Prikladna funkcija dodatka je odabir statusa komponenti koje se provjeravaju. Postoje dvije opcije za odabir: provjera među aktivnim temama i dodacima ili u neaktivnim (polje Dodatak / Status teme). Da biste započeli skeniranje, kliknite gumb Ponovno skeniraj web mjesto.

Rezultat testa također se može preuzeti u tekstualnoj datoteci klikom na gumb Preuzmi izvješće.

Svatko tko je upoznat s WordPressom čuo je za datoteku functions.php za temu (predložak). Međutim, ne razumiju svi dobro njegovu svrhu, videći ga samo kao datoteku koja pohranjuje razne PHP funkcije. Na internetu, kao i na mojoj stranici, često se predlaže dodavanje PHP koda ovoj datoteci. Međutim, neće svaki kôd raditi za ovu datoteku. Ne zato što neće raditi, već zato što se ne uklapa u logiku korištenja.

Također, kod uređivanja functions.php početnici rade greške zbog kojih stranica prestaje raditi.

U ovom ću članku pokušati razmotriti sve ove točke: kada koristiti functions.php i kada je bolje to ne činiti, koje se pogreške mogu pojaviti prilikom uređivanja functions.php.

Značajke functions.php

functions.php nalazi se u folderu teme i učitava se svaki put, tijekom pregleda vanjskog dijela stranice, u admin panelu, pa čak i tijekom AJAX zahtjeva. Ne postoji slučaj da functions.php neće biti uključen i to otvara široke mogućnosti za programere.

Na primjer, sljedeći kod umetnut u datoteku functions.php teme će proširiti mogućnosti teme omogućavanjem podrške za sličice postova:

Add_action("after_setup_theme", "wp_kama_theme_setup"); funkcija wp_kama_theme_setup())( // Podrška za sličice add_theme_support("post-sličice"); )

Drugi primjer, kod će zamijeniti tekst u podnožju WordPress administratorske ploče s podacima o broju zahtjeva baze podataka, vremenu generiranja stranice i upotrebi memorije:

## Podaci o broju zahtjeva prema bazi u admin panelu add_filter("admin_footer_text", "wp_usage"); // u administratorskoj ploči add_filter("wp_footer", "wp_usage"); // na web stranici funkcija wp_usage())( echo sprintf(__("SQL: %d u %s sek. %s MB", "km"), get_num_queries(), timer_stop(0, 3), round(memory_get_peak_usage () /1024/1024, 2)); )

functions.php u odnosu na dodatke

- “Dodaci rade sporije od koda u functions.php datoteci,” kažu neznalice - nije tako!

U teoriji, umetanje koda u functions.php isto je što i instaliranje dodatka, ali nije isto. Uostalom, kada promijenimo temu, dobit ćemo potpuno drugačiji functions.php i sve promjene će biti izgubljene, ali će plugin ostati, koliko god se tema promijenila. Iz tih razloga moramo se pozvati na datoteku functions.php. Ako se dodana funkcionalnost ne odnosi samo na temu, već i na web mjesto u cjelini, trebali biste razmisliti o povezivanju kao dodatka.

Drugi gornji primjer je "Podaci o broju upita prema bazi podataka u podnožju administrativne ploče." Logično, nije prikladan za korištenje u datoteci functions.php. Jer ako promijenimo predložak, izgubit ćemo ovu funkcionalnost, ali ona se koristi u administratorskoj ploči i potrebna je bez obzira koja se tema koristi.

Uklonimo ga iz functions.php i napravimo ga dodatkom - lako je!

Da biste izradili dodatak, trebate izraditi datoteku s donjim kodom (naziv datoteke može biti bilo koji), dodati je u direktorij dodatka wp-content/plugins/ i aktivirati dodatak u administratorskoj ploči:

. Obično, ako kod koji umećete ima ove oznake na početku i kraju, tada ih je potrebno ukloniti. Također, datoteka functions.php ne bi trebala prikazivati ​​nikakav tekst (HTML kod ili drugi sadržaj) na ekranu. Ispis teksta dopušten je samo unutar funkcija koje će se kasnije koristiti u predlošku ili koje su priložene kukicama (pogledajte dolje za više pojedinosti).

Ne možete dopustiti nikakve znakove prije , uključujući nevidljive znakove (prijelom retka), jer je functions.php povezan prije postavljanja http zaglavlja (takva zaglavlja prenose različite podatke, na primjer, da je ovo html dokument; da je utf-8 kodiranje drugačije ). Prema PHP pravilima, sadržaj bi trebao biti prikazan na ekranu nakon slanja zaglavlja. A sve izvan je sadržaj - tekst prikazan na ekranu, čak i nevidljivi znak \n. Stoga ovaj tekst uzrokuje pogrešku.

Da biste izbjegli pogreške, razmotrite 4 točke: #1 Ispravno ugniježđivanje

Na primjer, imali smo ovu strukturu:

.......ovdje je šifra......... ?>

Ispravno ovako:

#2 Bez prijeloma retka, razmaka, teksta prije

Ovaj kod će izazvati pogrešku:

Ali ovaj ne:

Logičnije je napisati ovako:

Dešava se da se prijelom retka nalazi na samom kraju functions.php i tada to postaje pravi problem, jer se čini da je sve ispravno, ali stranica ne radi. Zapravo nakon?> ili prije prazne linije

Iz tog razloga mnogi programeri potpuno uklanjaju završnu oznaku ?>; to je prihvatljivo u PHP-u. Preporučujem da uvijek radite ovo:

unutar PHP funkcija

Ako postoji funkcija u functions.php, tada se unutar te funkcije mogu koristiti oznake, na primjer, kako bi se vizualno istaknuo HTML kod unutar funkcije:

ovo je html kod

Činjenica je da je u ovom slučaju funkcija samo registrirana i ne izvodi nikakve radnje. Sve unutar funkcije (između ( )) ne radi dok se ta funkcija ne pozove, a takve se funkcije obično pozivaju iz predloška ili kroz filtere, nakon što su poslana HTTP zaglavlja. Dakle, u ovom primjeru možemo zanemariti prijelome redaka i koristiti ?> i