Labākais veids, kā atļaut spraudņus PHP lietojumprogrammai. PHP koda ievietošana programmā WordPress, izmantojot logrīkus Retreat spraudnis php

PHP 7. versija tika izlaista nesen 2015. gadā. Jauna kārta šīs programmēšanas valodas izstrādē ir devusi daudz iespēju visiem tiem, kas izmanto PHP. No jaunās versijas priekšrocībām jāizceļ ātrums. Tādējādi, pēc izstrādātāju domām, PHP 7 skriptu ātrums, salīdzinot ar iepriekšējām versijām, ir gandrīz dubultojies. Šajā sakarā daudzi vietņu īpašnieki, kuriem ir instalētas vecākas PHP versijas, vēlas pārslēgties uz jauno.

Kāpēc pārbaudīt saderību?

Jāpiebilst, ka pirms PHP versijas maiņas uz jaunāku un ātrāku hostinga vadības panelī ir jāpārbauda WordPress vietnes saderība ar to, proti, motīvi un spraudņi. Šī vajadzība rodas tāpēc, ka parasti jaunajās programmatūras versijās dažas funkcijas tiek pievienotas, bet dažas pārstāj pastāvēt. Ja spraudnis vai motīvs izmanto funkcijas vai metodes, kuras jaunajā versijā neeksistē, tas liecina par kļūdu, kas var traucēt visas vietnes darbību.

Kā pārbaudīt saderību ar PHP 7.0? PHP saderības pārbaudītāja spraudnis

PHP saderības pārbaudītāja spraudnis ļauj skenēt visu vietni un norādīt, kuri tās komponenti (motīvi, spraudņi) nav saderīgi ar izvēlēto PHP versiju. Vispirms tas jāinstalē un jāaktivizē, pēc tam dodieties uz admin paneli Rīki -> PHP saderība.

Kā redzat, spraudnis piedāvā ļoti skaidrus iestatījumus. Lai sāktu pārbaudi, jums ir jāizvēlas PHP versija, ar kuru vēlaties pārbaudīt vietnes saderību (PHP versijas bloks). Ērta spraudņa funkcija ir atlasīt pārbaudāmo komponentu statusu. Ir divas izvēles iespējas: vai nu pārbaudīt aktīvos motīvus un spraudņus, vai neaktīvos (lauks Spraudnis/Tēmas statuss). Lai sāktu skenēšanu, noklikšķiniet uz pogas Skenēt vietni vēlreiz.

Testa rezultātu var arī lejupielādēt teksta failā, noklikšķinot uz pogas Lejupielādēt ziņojumu.

Ikviens, kurš pārzina WordPress, ir dzirdējis par motīvu (veidnes) functions.php failu. Taču ne visi labi saprot tā mērķi, redzot to tikai kā failu, kurā glabājas dažādas PHP funkcijas. Internetā, tāpat kā manā vietnē, bieži tiek ieteikts šim failam pievienot PHP kodu. Tomēr ne katrs kods darbosies šim failam. Ne tāpēc, ka tas nedarbosies, bet tāpēc, ka tas neatbilst lietošanas loģikai.

Tāpat, rediģējot functions.php, iesācēji pieļauj kļūdas, kuru dēļ vietne pārstāj darboties.

Šajā rakstā es mēģināšu apsvērt visus šos punktus: kad lietot functions.php un kad labāk to nedarīt, kādas kļūdas var rasties, rediģējot functions.php.

Funkcijas functions.php

Functions.php atrodas motīva mapē un tiek ielādēts katru reizi, skatot vietnes ārējo daļu, administrēšanas panelī un pat AJAX pieprasījumu laikā. Nav gadījuma, kad functions.php netiks iekļauts, un tas paver plašas iespējas izstrādātājiem.

Piemēram, tālāk norādītais kods, kas ievietots motīva failā functions.php, paplašinās motīva iespējas, iespējojot ziņu sīktēlu atbalstu:

Add_action("after_setup_theme", "wp_kama_theme_setup"); function wp_kama_theme_setup())( // Sīktēlu atbalsts add_theme_support("post-thumbnails"); )

Vēl viens piemērs, kods aizstās tekstu WordPress administratora paneļa kājenē ar datiem par datu bāzes pieprasījumu skaitu, lapas ģenerēšanas laiku un atmiņas lietojumu:

## Dati par pieprasījumu skaitu datu bāzei admin panelī add_filter("admin_footer_text", "wp_usage"); // administratora panelī add_filter("wp_footer", "wp_usage"); // tīmekļa vietnē funkcija wp_usage())( echo sprintf(__("SQL: %d in %s sec. %s MB", "km"), get_num_queries(), timer_stop(0, 3), round(memory_get_peak_usage () /1024/1024, 2));)

Functions.php vs spraudņi

- "Spraudņi darbojas lēnāk nekā kods functions.php failā," saka nezinātājs - tas tā nav!

Teorētiski koda ievietošana failā functions.php ir tas pats, kas spraudņa instalēšana, taču tā nav viena un tā pati lieta. Galu galā, mainot tēmu, mēs iegūsim pavisam citas funkcijas.php un visas veiktās izmaiņas tiks zaudētas, bet spraudnis paliks neatkarīgi no tā, cik daudz tēma tiks mainīta. Šo iemeslu dēļ mums ir jāatsaucas uz functions.php failu. Ja pievienotā funkcionalitāte attiecas ne tikai uz motīvu, bet arī uz vietni kopumā, jums vajadzētu padomāt par tās pievienošanu kā spraudni.

Otrais piemērs iepriekš ir “Dati par datu bāzes vaicājumu skaitu administratora paneļa kājenē”. Loģiski, ka tas nav piemērots izmantošanai functions.php failā. Jo, mainot veidni, mēs pazaudēsim šo funkcionalitāti, taču tā tiek izmantota admin panelī un ir nepieciešama neatkarīgi no izmantotās tēmas.

Tāpēc izņemsim to no functions.php un padarīsim to par spraudni — tas ir vienkārši!

Lai izveidotu spraudni, ir jāizveido fails ar tālāk norādīto kodu (faila nosaukums var būt jebkas), jāpievieno tas spraudņa direktorijā wp-content/plugins/ un jāaktivizē spraudnis admin panelī:

. Parasti, ja kodā, kuru ievietojat, šie tagi ir sākumā un beigās, tie ir jānoņem. Turklāt failam functions.php ekrānā nevajadzētu parādīt tekstu (HTML kodu vai citu saturu). Teksta izvade ir atļauta tikai funkcijās, kas vēlāk tiks izmantotas veidnē vai ir pievienotas āķiem (sīkāku informāciju skatiet tālāk).

Jūs nevarat atļaut rakstzīmes pirms , tostarp neredzamas rakstzīmes (rindu pārtraukumus), jo funkcijas.php ir savienots pirms http galveņu iestatīšanas (šādas galvenes sniedz dažādus datus, piemēram, ka šis ir html dokuments; ka utf-8 kodējums atšķiras ). Saskaņā ar PHP noteikumiem saturs ir jāparāda ekrānā pēc galveņu nosūtīšanas. Un viss, kas atrodas ārpusē, ir saturs – ekrānā redzamais teksts, pat neredzamā \n rakstzīme. Tāpēc šis teksts rada kļūdu.

Lai izvairītos no kļūdām, ņemiet vērā 4 punktus: #1 Pareiza ligzdošana

Piemēram, mums bija šāda struktūra:

.......šeit ir kods......... ?>

Pareizi šādi:

#2 Pirms tam nav rindiņu pārtraukumu, atstarpju, teksta

Šis kods radīs kļūdu:

Bet šis nav:

Loģiskāk ir to rakstīt šādi:

Gadās, ka funkcijas.php pašās beigās tiek ievietots rindiņas pārtraukums, un tad tā kļūst par reālu problēmu, jo šķiet, ka viss ir pareizi, bet vietne nedarbojas. Patiesībā pēc?> vai pirms ir tukša rinda

Šī iemesla dēļ daudzi izstrādātāji vispār noņem noslēdzošo tagu ?>; tas ir pieņemams PHP. Es iesaku vienmēr rīkoties šādi:

PHP funkciju iekšpusē

Ja funkcijas.php ir funkcija, tad šajā funkcijā var izmantot tagus, piemēram, lai vizuāli izceltu HTML kodu funkcijas iekšpusē:

šis ir html kods

Fakts ir tāds, ka šajā gadījumā funkcija ir tikai reģistrēta un neveic nekādas darbības. Viss, kas atrodas funkcijā (starp ( )), nedarbojas, kamēr šī funkcija nav izsaukta, un šādas funkcijas parasti tiek izsauktas no veidnes vai caur filtriem pēc HTTP galveņu nosūtīšanas. Tātad šajā piemērā mēs varam ignorēt rindu pārtraukumus un izmantot ?> un