Geriausias būdas leisti PHP programos papildinius. PHP kodo įterpimas į WordPress naudojant valdiklius Retreat plugin php

7-oji PHP versija buvo išleista 2015 m. Naujas šios programavimo kalbos kūrimo etapas suteikė daug galimybių visiems, kurie naudojasi PHP. Iš naujosios versijos privalumų reikėtų išskirti greitį. Taigi, pasak kūrėjų, PHP 7 scenarijų greitis, palyginti su ankstesnėmis versijomis, išaugo beveik dvigubai. Šiuo atžvilgiu daugelis svetainių savininkų, turinčių senesnes PHP versijas, nori pereiti prie naujos.

Kodėl reikia patikrinti suderinamumą?

Pažymėtina, kad prieš keisdami PHP versiją į naujesnę ir greitesnę savo prieglobos valdymo skydelyje, turite patikrinti WordPress svetainės suderinamumą su ja, ty temas ir papildinius. Toks poreikis atsiranda dėl to, kad dažniausiai naujose programinės įrangos versijose kai kurios funkcijos pridedamos, o kai kurios iš viso nustoja egzistuoti. Jei papildinys ar tema naudoja funkcijas ar metodus, kurių naujojoje versijoje nėra, tai yra klaidos požymis, galintis sutrikdyti visos svetainės veikimą.

Kaip patikrinti suderinamumą su PHP 7.0? PHP suderinamumo tikrinimo papildinys

PHP Compatibility Checker įskiepis leidžia nuskaityti visą svetainę ir nurodyti, kurie jos komponentai (temos, papildiniai) nesuderinami su pasirinkta PHP versija. Pirmiausia turite jį įdiegti ir suaktyvinti, tada eikite į administratoriaus skydelį Įrankiai -> PHP suderinamumas.

Kaip matote, papildinys siūlo labai aiškius nustatymus. Norėdami pradėti tikrinti, turite pasirinkti PHP versiją, su kuria norite patikrinti svetainės suderinamumą (PHP versijos blokas). Patogi įskiepio funkcija – pasirinkti tikrinamų komponentų būseną. Galima rinktis iš dviejų parinkčių: patikrinti aktyvias temas ir papildinius arba neaktyvius (laukas Papildinys / temos būsena). Norėdami pradėti nuskaitymą, spustelėkite mygtuką Nuskaityti svetainę dar kartą.

Bandymo rezultatą taip pat galima atsisiųsti tekstiniu failu, paspaudus mygtuką Atsisiųsti ataskaitą.

Visi susipažinę su WordPress yra girdėję apie temos (šablono) functions.php failą. Tačiau ne visi gerai supranta jo paskirtį, matydami jį tik kaip failą, kuriame saugomos įvairios PHP funkcijos. Internete, kaip ir mano svetainėje, dažnai siūloma prie šio failo pridėti PHP kodą. Tačiau ne kiekvienas kodas veiks šiam failui. Ne todėl, kad neveiks, o todėl, kad neatitinka naudojimo logikos.

Taip pat pradedantieji, redaguodami functions.php, daro klaidų, dėl kurių svetainė nustoja veikti.

Šiame straipsnyje pabandysiu apsvarstyti visus šiuos dalykus: kada naudoti functions.php ir kada geriau to nedaryti, kokios klaidos gali atsirasti redaguojant functions.php.

Funkcijos.php

Functions.php yra temos aplanke ir įkeliamas kiekvieną kartą, peržiūrint išorinę svetainės dalį, administratoriaus skydelyje ir net AJAX užklausų metu. Nėra tokio atvejo, kad funkcijos.php nebūtų įtrauktos ir tai atveria plačias galimybes kūrėjams.

Pavyzdžiui, šis kodas, įterptas į temos failą functions.php, išplės temos galimybes, įjungdamas įrašų miniatiūrų palaikymą:

Add_action("after_setup_theme", "wp_kama_theme_setup"); function wp_kama_theme_setup())( // Miniatiūrų palaikymas add_theme_support("post-thumbnails"); )

Kitas pavyzdys, kodas pakeis tekstą WordPress administratoriaus skydelio poraštėje duomenimis apie duomenų bazės užklausų skaičių, puslapio generavimo laiką ir atminties naudojimą:

## Duomenys apie užklausų duomenų bazei skaičių administratoriaus skydelyje add_filter("admin_footer_text", "wp_usage"); // administratoriaus skydelyje add_filter("wp_footer", "wp_usage"); // svetainėje funkcija wp_usage())( echo sprintf(__("SQL: %d per %s sek. %s MB", "km"), get_num_queries(), timer_stop(0, 3), round(memory_get_peak_usage () /1024/1024, 2)); )

Functions.php vs plugins

- "Įskiepiai veikia lėčiau nei kodas functions.php faile", sako neišmanėliai - taip nėra!

Teoriškai kodo įterpimas į functions.php yra tas pats, kas įdiegti papildinį, bet tai nėra tas pats dalykas. Juk pakeitę temą gausime visai kitokias funkcijas.php ir visi atlikti pakeitimai bus prarasti, bet įskiepis išliks, kad ir kiek būtų pakeista tema. Dėl šių priežasčių turime kreiptis į functions.php failą. Jei pridėta funkcija yra susijusi ne tik su tema, bet ir su visa svetaine, tuomet turėtumėte pagalvoti apie jos prijungimą kaip papildinį.

Antrasis aukščiau pateiktas pavyzdys yra „Duomenys apie užklausų į duomenų bazę skaičių administratoriaus skydelio poraštėje“. Logiškai mąstant, jis netinka naudoti functions.php faile. Nes pakeitę šabloną prarasime šią funkciją, bet ji naudojama admin panelėje ir reikalinga, kad ir kokia tema būtų naudojama.

Taigi pašalinkime jį iš functions.php ir paverskime papildiniu – tai paprasta!

Norėdami sukurti papildinį, turite sukurti failą su žemiau pateiktu kodu (failo pavadinimas gali būti bet koks), įtraukti jį į įskiepių katalogą wp-content/plugins/ ir suaktyvinti įskiepį administratoriaus skydelyje:

. Paprastai, jei įterpiamo kodo pradžioje ir pabaigoje yra šios žymos, jas reikia pašalinti. Be to, failas functions.php ekrane neturėtų rodyti jokio teksto (HTML kodo ar kito turinio). Teksto išvestis leidžiama tik tose funkcijose, kurios vėliau bus naudojamos šablone arba kurios yra pritvirtintos prie kabliukų (daugiau informacijos rasite toliau).

Negalite leisti jokių simbolių prieš , įskaitant nematomus simbolius (eilučių pertraukas), nes functions.php yra prijungtas prieš nustatant http antraštes (tokios antraštės perduoda įvairius duomenis, pavyzdžiui, kad tai yra html dokumentas; kad skiriasi utf-8 kodavimas ). Remiantis PHP taisyklėmis, turinys turi būti rodomas ekrane po antraštės išsiuntimo. O viskas išorėje yra turinys – ekrane rodomas tekstas, net ir nematomas \n simbolis. Todėl šis tekstas sukelia klaidą.

Kad išvengtumėte klaidų, atsižvelkite į 4 taškus: #1 Teisingas lizdas

Pavyzdžiui, mes turėjome tokią struktūrą:

.......čia yra kodas......... ?>

Teisingai taip:

#2 Prieš tai nėra eilučių lūžių, tarpų, teksto

Šis kodas sukels klaidą:

Bet šis ne:

Logiškiau rašyti taip:

Būna, kad pačioje functions.php pabaigoje dedama eilutės lūžis, tada tai tampa tikra problema, nes atrodo, kad viskas yra teisinga, bet svetainė neveikia. Tiesą sakant, po?> arba prieš yra tuščia eilutė

Dėl šios priežasties daugelis kūrėjų visiškai pašalina baigiamąją žymą ?>; tai priimtina PHP. Rekomenduoju visada daryti taip:

PHP funkcijų viduje

Jei funkcijos.php yra funkcija, tada šioje funkcijoje gali būti naudojamos žymės, pavyzdžiui, norint vizualiai paryškinti HTML kodą funkcijos viduje:

tai yra html kodas

Faktas yra tas, kad šiuo atveju funkcija tik registruojama ir neatlieka jokių veiksmų. Viskas funkcijos viduje (tarp ( )) neveikia, kol ši funkcija neiškviečiama, o tokios funkcijos dažniausiai iškviečiamos iš šablono arba per filtrus, išsiuntus HTTP antraštes. Taigi šiame pavyzdyje galime nepaisyti eilučių lūžių ir naudoti ?> ir