Som webbdesigners går det emot vår natur att begränsa tillgången till vår kod. Vi lär oss att maximera kompatibiliteten hos våra webbplatser och sträva efter bakåtkompatibilitet där det är möjligt. att skapa gradvis förbättrade och graciöst nedbrytande webbplatser. Om vi ​​kan få det att fungera på IE1, det är inte dåligt ...

Problemet, åtminstone för WordPress-utvecklare, är att WordPress är ett monster; det kommer att svälja dig och ditt ljuvliga lilla projekt hela om du släpper det.

När du producerar ett WordPress-tema, antingen som ett skräddarsydd jobb för en viss kund eller att sälja på en av de många WordPress-marknadsplatserna, kan ditt mål aldrig vara att täcka allt som någonsin varit en del av WordPress. Istället bör ditt mål vara att använda nyckelfunktionerna, funktionerna och filteren på bästa möjliga sätt för att maximera nuvarande kodbas.

Som professionell är din tid pengar, ju längre du spenderar på din utveckling desto mindre vinst du gör det är en enkel ekvation. Storleken på WordPress innebär att du enkelt kan spendera 80% av din tid med 20% av marknaden. Mycket bättre att spendera 80% av tiden med 80% av marknaden. När det gäller kvalitetsprodukt och din egen banksaldo är det det säkraste tillvägagångssättet.

I 14 viktiga WordPress-funktioner för att hoppa på temat utveckling Vi gick igenom några av de funktioner som, utan att misslyckas, jag inkluderar i mitt starttemanatets funktioner.php. I den här artikeln täcker vi en annan viktig funktion som ska gå på din lista över viktiga WordPress-funktioner. Det kommer att rädda dig både huvud och hjärta, värkar på vägen.

WordPress begränsar redan bakåtkompatibilitet

När ett undvikbart utnyttjande tar din kunds webbplats (som går på ditt tema) ner till knäna, vem tror du att de ringer? Låt mig rädda dig gissningen: det är du, m'kay? Det spelar ingen roll att det som orsakar problemet inte alls är ditt fel till kunden, det spelar ingen roll för att du är den närmaste länken till det möjliga problemet. Det sista som de kommer ihåg gör hjälper dig att bygga ett nytt tema för dem.

Om du upptäcker att kundens webbplats fortfarande körs på WordPress äldre än den nuvarande stabila versionen, ta några sekunder och släpp dig själv över ansiktet: vänster kind först och sedan höger kind. Ditt tema ska inte tillåta dem att göra det!

Om du har uppmärksammat, om version 3.6 av WordPress, har du börjat lägga märke till en funktion ganska högt upp i standardtemaets funktioner.php som begränsade användningen av standardtemat till versioner av WP som är nyare än 3.6. Det är faktiskt den andra funktionen som definieras i tjugo fjortons funktioner.php !

Den funktionen ser något ut så här ut:

/*** Twenty Fourteen only works in WordPress 3.6 or later.*/if ( version_compare( $GLOBALS['wp_version'], '3.6', '<' ) ) {require get_template_directory() . '/inc/back-compat.php';}

Vi är intresserade av innehållet i den back-kompat.php- filen. Funktionerna som definieras där är vad vi söker efter med egna teman.

Inget land för gammal WordPress

Det spelar ingen roll om vilka funktioner du implementerar men om möjligt begränsar användningen av dina teman till rimligt nya versioner av WordPress. Det säkerställer att slutanvändaren uppdaterar sin installation (desto bättre för dem när det gäller säkerhet) och säkerställer att du spenderar majoriteten av din utvecklingstid hos majoriteten av användarna.

Definiera funktionen

För att uppnå detta använder vi funktionen PHP version_compare () för att kontrollera den aktuellt installerade versionen av WordPress mot den senaste tillgängliga versionen och se till att den senaste installerade versionen inte är lägre än 3,6-gör ditt eget val på vilken version som ska testas, 3.6 är inte en rekommendation, bara ett exempel. Den funktionen ser något ut så här ut:

if ( version_compare( $GLOBALS['wp_version'], '3.6', '<' ) ) {// do (or do not) somethingfunction butter_never_get_old() {switch_theme( WP_DEFAULT_THEME, WP_DEFAULT_THEME );unset( $_GET['activated'] );add_action( 'admin_notices', 'butter_step_your_game_up' ); // we add some admin notices here (we haven't defined this function yet)}add_action( 'after_switch_theme', 'butter_never_get_old' );}

Vad den här funktionen gör är att definiera en åtgärdsfunktion butter_never_get_old () som bara kommer att köras när kärnfunktionen after_switch_theme () kallas. Hittills har funktionen butter_never_get_old () som ligger i vår versionskontroll göra följande:

  1. Kontrollerar vilken version av WordPress som för närvarande är installerad
  2. Se till att versionen är nyare än version 3.6
  3. Kör den kosmiskt relevanta If / Else:
  4. Om det är: Aktivera temat.
  5. Om det inte är: Aktivera inte temat. Istället aktivera standardtemat och, för att vara trevligt, skriv ut ett trevligt litet meddelande som instruerar användaren att uppgradera sin löjligt gamla installation. Kom igen, morfar!

Nudge, nudge! Uppgradera som s #% *

Därefter måste vi definiera funktionen butter_step_your_game_up () som skriver ut våra administrativa meddelanden om något skulle gå fel, vilket tydligen skulle innebära att WP-versionen är äldre än vi skulle vilja.

function butter_step_your_game_up() {$update_message = sprintf( __( 'This theme requires WordPress version 3.6 or newer. You're currently using version %s. Please upgrade.', 'butter' ), $GLOBALS['wp_version'] );printf( '

%s

', $update_message );}

Ovanstående butter_step_your_game_up () -funktion anger vår översättningsbara felmeddelandesträng i $ update_message- variabeln som definierad (detta tema kräver ... etc) som sedan skrivs ut och visas till användaren (från den tidigare definierade butter_never_get_old () -funktionen) och visuellt inuti en div med klassen "fel". Detta meddelande kan du sedan stila efter önskat.

Så, allt sagt, vår funktion ska se ut så här:

if ( version_compare( $GLOBALS['wp_version'], '3.6', '<' ) ) {// This function deactivates our newly activated theme if WP isn't newer than 3.6// It then re/activates the default themefunction butter_never_get_old() {switch_theme( WP_DEFAULT_THEME, WP_DEFAULT_THEME );unset( $_GET['activated'] );add_action( 'admin_notices', 'butter_step_your_game_up' );}add_action( 'after_switch_theme', 'butter_never_get_old' );// This function, called from within the above function// outputs the relevant message that nudges the theme's user// to upgradefunction butter_step_your_game_up() {$update_message = sprintf( __( 'This theme requires WordPress version 3.6 or newer. You are currently using version %s. Please upgrade!', 'butter' ), $GLOBALS['wp_version'] );printf( '

%s

', $update_message );} }

Med det på plats ser du till att ditt tema inte kan aktiveras på WordPress-installationer som är äldre än version 3.6.

Håll det rent

Så långt som möjligt borde du hålla dina functions.php rena. Det ska vara rent i den meningen att du ska kunna skanna snabbt och genast urskilja vad varje funktion gör. För det ändamålet kanske vi vill flytta vår funktion till en inkluderad mapp.

Om du inte redan har skapat en mapp och namnet "inc" inuti ditt temas katalog. Inuti det, skapa en php-fil och namnge det back-compat.php . Kopiera och klistra in innehållet i den funktion som vi just skapat, och lämna endast version_compare () i functions.php:

if ( version_compare( $GLOBALS['wp_version'], '3.6', '<' ) ) {require get_template_directory() . '/inc/back-compat.php';}

Inne i filen /inc/back-compat.php , klistra in de funktioner som vi definierade tidigare:

function butter_never_get_old() {switch_theme( WP_DEFAULT_THEME, WP_DEFAULT_THEME );unset( $_GET['activated'] );add_action( 'admin_notices', 'butter_step_your_game_up' );}add_action( 'after_switch_theme', 'butter_never_get_old' );function butter_step_your_game_up() {$update_message = sprintf( __( 'This theme requires WordPress version 3.6 or newer. You are currently using version %s. Please upgrade!', 'butter' ), $GLOBALS['wp_version'] );printf( '

%s

', $update_message );}

Slutsats

Det är alltid en tuff försäljning att berätta för en bra utvecklare att de måste begränsa kodens kompatibilitet. Men den stora storleken på WordPress-kodbasen, speciellt när du fokuserar på bakåtkompatibilitet, begränsar ditt temans omfattning till en praktisk nödvändighet. WordPress själva gör det bör markera sin giltighet.

Och nu befriad från de ständiga hinder som presenteras med föråldrad kod kan du fokusera dina energier där de hör hemma: på att utnyttja den underbara kraften i WordPress.

Utvalda bild / miniatyrbild, användningar kompatibilitetsbild via Shutterstock.