Det bästa sättet att tillåta plugins för en PHP-applikation. Infoga PHP-kod i WordPress via widgets Retreat plugin php

Den sjunde versionen av PHP släpptes nyligen 2015. En ny omgång i utvecklingen av detta programmeringsspråk har medfört många möjligheter för alla som använder PHP. Bland fördelarna med den nya versionen bör hastigheten lyftas fram. Således, enligt utvecklarna, har hastigheten på skript i PHP 7, jämfört med tidigare versioner, nästan fördubblats. I detta avseende vill många webbplatsägare som har äldre versioner av PHP installerat byta till den nya.

Varför kontrollera kompatibilitet?

Det bör noteras att innan du ändrar PHP-versionen till en nyare och snabbare i kontrollpanelen på ditt webbhotell, måste du kontrollera WordPress-webbplatsen för kompatibilitet med den, nämligen teman och plugins. Detta behov uppstår eftersom vanligtvis i nya versioner av programvara läggs vissa funktioner till, och vissa upphör helt och hållet att existera. Om ett plugin eller tema använder funktioner eller metoder som inte finns i den nya versionen, är detta ett tecken på ett fel som kan störa funktionen av webbplatsen som helhet.

Hur kontrollerar jag kompatibilitet med PHP 7.0? Plugin för PHP-kompatibilitetskontroll

Plugin-programmet PHP Compatibility Checker låter dig skanna hela webbplatsen och ange vilka av dess komponenter (teman, plugins) som inte är kompatibla med den valda versionen av PHP. Först måste du installera och aktivera det, gå sedan till adminpanelen Verktyg -> PHP-kompatibilitet.

Som du kan se erbjuder plugin mycket tydliga inställningar. För att börja kontrollera måste du välja den PHP-version som du vill kontrollera platsen för kompatibilitet (PHP-versionsblock). En praktisk funktion med plugin är att välja status för komponenterna som kontrolleras. Det finns två alternativ att välja mellan: antingen kolla bland aktiva teman och plugins, eller i inaktiva (fältet Plugin / Temastatus). För att starta skanningen, klicka på knappen Skanna webbplats igen.

Testresultatet kan också laddas ner i en textfil genom att klicka på knappen Ladda ned rapport.

Alla som är bekanta med WordPress har hört talas om temat (mall) functions.php-filen. Det är dock inte alla som förstår dess syfte väl, eftersom de bara ser det som en fil som lagrar olika PHP-funktioner. På Internet, som på min sida, föreslås det ofta att lägga till PHP-kod till den här filen. Men inte alla koder fungerar för den här filen. Inte för att det inte fungerar, utan för att det inte passar in i användningslogiken.

Dessutom, när man redigerar functions.php, gör nybörjare misstag på grund av vilka sajten slutar fungera.

I den här artikeln kommer jag att försöka överväga alla dessa punkter: när man ska använda functions.php och när det är bättre att inte göra detta, vilka fel kan uppstå när man redigerar functions.php.

Funktioner functions.php

functions.php finns i temamappen och laddas varje gång, medan du tittar på den externa delen av webbplatsen, i adminpanelen och även under AJAX-förfrågningar. Det finns inget fall när functions.php inte kommer att inkluderas och detta öppnar stora möjligheter för utvecklare.

Till exempel kommer följande kod som infogas i temats functions.php-fil att utöka temats möjligheter genom att aktivera stöd för inläggsminiatyrer:

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

Ett annat exempel, koden kommer att ersätta texten i sidfoten på WordPress adminpanel med data om antalet databasförfrågningar, sidgenereringstid och minnesanvändning:

## Data om antalet förfrågningar till databasen i adminpanelen add_filter("admin_footer_text", "wp_usage"); // i adminpanelen add_filter("wp_footer", "wp_usage"); // på webbplatsen fungerar 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 fungerar långsammare än koden i functions.php-filen," säger de okunniga - detta är inte sant!

I teorin är att infoga kod i functions.php detsamma som att installera ett plugin, men det är inte samma sak. När vi ändrar tema kommer vi trots allt att få en helt annan functions.php och alla ändringar som görs kommer att gå förlorade, men plugin kommer att finnas kvar, oavsett hur mycket temat ändras. Av dessa skäl måste vi hänvisa till filen functions.php. Om den extra funktionaliteten inte bara relaterar till temat, utan också till webbplatsen som helhet, bör du tänka på att ansluta den som ett plugin.

Det andra exemplet ovan är "Data om antalet frågor till databasen i adminpanelens sidfot." Logiskt sett är den inte lämplig för användning i filen functions.php. För om vi ändrar mallen kommer vi att förlora denna funktionalitet, men den används i adminpanelen och behövs oavsett vilket tema som används.

Så låt oss ta bort det från functions.php och göra det till ett plugin - det är enkelt!

För att skapa ett plugin måste du skapa en fil med koden nedan (filnamnet kan vara vad som helst), lägga till den i pluginkatalogen wp-content/plugins/ och aktivera plugin i adminpanelen:

. Vanligtvis, om koden du infogar har dessa taggar i början och slutet, måste de tas bort. Dessutom bör functions.php-filen inte visa någon text (HTML-kod eller annat innehåll) på skärmen. Textutmatning är endast tillåten i funktioner som senare kommer att användas i mallen eller som är fästa på krokar (se nedan för mer information).

Du kan inte tillåta några tecken före , inklusive osynliga tecken (radbrytningar), eftersom functions.php ansluts innan http-rubriker ställs in (sådana rubriker förmedlar olika data, till exempel att detta är ett html-dokument; att utf-8-kodningen är annorlunda ). Enligt PHP-regler ska innehållet visas på skärmen efter att rubrikerna har skickats. Och allt utanför är innehållet - texten som visas på skärmen, även det osynliga \n-tecknet. Därför orsakar denna text ett fel.

För att undvika fel, överväg 4 punkter: #1 Korrekt kapsling

Till exempel hade vi den här strukturen:

.......här är koden......... ?>

Rätt så här:

#2 Inga radbrytningar, mellanslag, text innan

Denna kod kommer att orsaka ett fel:

Men den här gör det inte:

Det är mer logiskt att skriva det så här:

Det händer att en radbrytning placeras i slutet av functions.php, och då blir detta ett verkligt problem, eftersom allt verkar vara korrekt, men sidan fungerar inte. Egentligen efter?> eller innan det finns en tom rad

Av denna anledning tar många utvecklare bort den avslutande ?>-taggen helt, detta är acceptabelt i PHP. Jag rekommenderar att du alltid gör detta:

inuti PHP-funktioner

Om det finns en funktion i functions.php kan taggar användas i denna funktion, till exempel för att visuellt markera HTML-koden inuti funktionen:

detta är html-koden

Faktum är att i det här fallet är funktionen bara registrerad och utför inga åtgärder. Allt inuti en funktion (mellan ( )) fungerar inte förrän denna funktion anropas, och sådana funktioner anropas vanligtvis från en mall eller genom filter, efter att HTTP-huvudena har skickats. Så i det här exemplet kan vi ignorera radbrytningar och använda ?> och