Den beste måten å tillate plugins for en PHP-applikasjon. Sette inn PHP-kode i WordPress via widgets Retreat-plugin php

Den syvende versjonen av PHP ble utgitt nylig i 2015. En ny runde i utviklingen av dette programmeringsspråket har gitt mange muligheter for alle som bruker PHP. Blant fordelene med den nye versjonen bør hastighet fremheves. Dermed er hastigheten på skript i PHP 7, sammenlignet med tidligere versjoner, ifølge utviklerne nesten doblet. I denne forbindelse ønsker mange nettstedeiere som har eldre versjoner av PHP installert å bytte til den nye.

Hvorfor sjekke for kompatibilitet?

Det skal bemerkes at før du endrer PHP-versjonen til en nyere og raskere i kontrollpanelet til hostingen din, må du sjekke WordPress-siden for kompatibilitet med den, nemlig temaer og plugins. Dette behovet oppstår fordi vanligvis i nye versjoner av programvare legges noen funksjoner til, og noen slutter å eksistere helt. Hvis en plugin eller et tema bruker funksjoner eller metoder som ikke eksisterer i den nye versjonen, er dette et tegn på en feil som kan forstyrre driften av nettstedet som helhet.

Hvordan sjekke for kompatibilitet med PHP 7.0? PHP Compatibility Checker Plugin

PHP Compatibility Checker-pluginen lar deg skanne hele nettstedet og indikere hvilke av komponentene (temaer, plugins) som ikke er kompatible med den valgte versjonen av PHP. Først må du installere og aktivere den, deretter gå til administrasjonspanelet Verktøy -> PHP-kompatibilitet.

Som du kan se, tilbyr plugin-en veldig klare innstillinger. For å begynne å sjekke, må du velge PHP-versjonen som du vil sjekke nettstedet for kompatibilitet (PHP-versjonsblokk). En praktisk funksjon til plugin er å velge status for komponentene som kontrolleres. Det er to alternativer å velge mellom: enten sjekk blant aktive temaer og plugins, eller i inaktive (felt Plugin / Temastatus). For å starte skanningen, klikk på knappen Skann stedet igjen.

Testresultatet kan også lastes ned i en tekstfil ved å klikke på knappen Last ned rapport.

Alle som er kjent med WordPress har hørt om temaet (mal) functions.php-filen. Imidlertid forstår ikke alle formålet godt, og ser det bare som en fil som lagrer forskjellige PHP-funksjoner. På Internett, som på nettstedet mitt, foreslås det ofte å legge til PHP-kode i denne filen. Imidlertid vil ikke hver kode fungere for denne filen. Ikke fordi det ikke vil fungere, men fordi det ikke passer til brukslogikken.

Også, når du redigerer functions.php, gjør nybegynnere feil på grunn av at nettstedet slutter å fungere.

I denne artikkelen vil jeg prøve å vurdere alle disse punktene: når du skal bruke functions.php og når det er bedre å ikke gjøre dette, hvilke feil kan oppstå når du redigerer functions.php.

Har functions.php

functions.php ligger i temamappen og lastes inn hver gang mens du ser på den eksterne delen av nettstedet, i administrasjonspanelet og til og med under AJAX-forespørsler. Det er ingen sak når functions.php ikke vil bli inkludert, og dette åpner for store muligheter for utviklere.

For eksempel vil følgende kode satt inn i temaets functions.php-fil utvide temaets muligheter ved å aktivere støtte for innleggsminiatyrbilder:

Add_action("after_setup_theme", "wp_kama_theme_setup"); function wp_kama_theme_setup())( // Thumbnail support add_theme_support("post-thumbnails"); )

Et annet eksempel, koden vil erstatte teksten i bunnteksten til WordPress admin panel med data om antall databaseforespørsler, sidegenereringstid og minnebruk:

## Data om antall forespørsler til databasen i adminpanelet add_filter("admin_footer_text", "wp_usage"); // i administrasjonspanelet add_filter("wp_footer", "wp_usage"); // på nettsiden funksjonen wp_usage())( echo sprintf(__("SQL: %d i %s sek. %s MB", "km"), get_num_queries(), timer_stop(0, 3), round(memory_get_peak_usage) () /1024/1024, 2)); )

functions.php vs plugins

- "Plugins fungerer tregere enn koden i functions.php-filen," sier de uvitende - dette er ikke slik!

I teorien er det å sette inn kode i functions.php det samme som å installere en plugin, men det er ikke det samme. Tross alt, når vi endrer temaet, vil vi få en helt annen functions.php og alle endringene som er gjort vil gå tapt, men plugin-en vil forbli, uansett hvor mye temaet endres. Av disse grunnene må vi henvise til functions.php-filen. Hvis den ekstra funksjonaliteten ikke bare er relatert til temaet, men også til nettstedet som helhet, bør du tenke på å koble det til som en plugin.

Det andre eksemplet ovenfor er "Data om antall spørringer til databasen i bunnteksten i administrasjonspanelet." Logisk sett er den ikke egnet for bruk i functions.php-filen. For hvis vi endrer malen vil vi miste denne funksjonaliteten, men den brukes i adminpanelet og trengs uansett hvilket tema som brukes.

Så la oss fjerne det fra functions.php og gjøre det til en plugin - det er enkelt!

For å lage en plugin må du lage en fil med koden nedenfor (filnavnet kan være hva som helst), legge den til i plugin-katalogen wp-content/plugins/ og aktivere plugin-en i adminpanelet:

. Vanligvis, hvis koden du setter inn har disse kodene i begynnelsen og slutten, må de fjernes. Functions.php-filen skal heller ikke vise noen tekst (HTML-kode eller annet innhold) på skjermen. Tekstutdata er kun tillatt inne i funksjoner som senere vil bli brukt i malen eller som er festet til kroker (se nedenfor for flere detaljer).

Du kan ikke tillate noen tegn før , inkludert usynlige tegn (linjeskift), fordi functions.php kobles til før du setter http-overskrifter (slike overskrifter formidler forskjellige data, for eksempel at dette er et html-dokument; at utf-8-kodingen er forskjellig ). I følge PHP-reglene skal innholdet vises på skjermen etter at overskriftene er sendt. Og alt utenfor er innholdet - teksten som vises på skjermen, til og med det usynlige \n-tegnet. Derfor forårsaker denne teksten en feil.

For å unngå feil, vurder 4 punkter: #1 Riktig hekking

For eksempel hadde vi denne strukturen:

.......her er koden......... ?>

Riktig slik:

#2 Ingen linjeskift, mellomrom, tekst før

Denne koden vil forårsake en feil:

Men denne gjør det ikke:

Det er mer logisk å skrive det slik:

Det hender at et linjeskift plasseres helt på slutten av functions.php, og da blir dette et reelt problem, fordi alt ser ut til å være riktig, men siden fungerer ikke. Egentlig etter?> eller før det er en tom linje

Av denne grunn fjerner mange utviklere den avsluttende ?>-taggen helt; dette er akseptabelt i PHP. Jeg anbefaler alltid å gjøre dette:

inne i PHP-funksjoner

Hvis det er en funksjon i functions.php, kan tagger brukes i denne funksjonen, for eksempel for å visuelt fremheve HTML-koden inne i funksjonen:

dette er html-koden

Faktum er at i dette tilfellet er funksjonen bare registrert og utfører ingen handlinger. Alt inne i en funksjon (mellom ( )) fungerer ikke før denne funksjonen kalles, og slike funksjoner kalles vanligvis fra en mal eller gjennom filtre, etter at HTTP-hodene er sendt. Så i dette eksemplet kan vi ignorere linjeskift og bruke ?> og