Som webdesignere går det imod vores natur at begrænse adgangen til vores kode. Vi læres at maksimere kompatibiliteten af ​​vores hjemmesider og stræbe efter kompatibilitet bagud, hvor det er muligt. at skabe gradvist forbedrede og graciøst nedværdende websteder. Hvis vi kan få det til at fungere på IE1, er det ikke noget dårligt ...

Problemet, i hvert fald for WordPress-udviklere, er, at WordPress er et monster; det vil sluge dig og dit dejlige lille projekt hele, hvis du lader det.

Når du producerer et WordPress-tema, enten som et skræddersyet job til en bestemt kunde eller at videresælge på en af ​​de mange WordPress-markedspladser, kan dit mål aldrig dække alt, der nogensinde har været en del af WordPress. I stedet skal dit mål være at bruge nøglefunktioner, funktioner og filtre på den bedst mulige måde for at maksimere den nuværende kodebase.

Som professionel er din tid penge, jo længere du bruger på din udvikling, desto mindre fortjeneste gør du; det er en simpel ligning. Størrelsen af ​​WordPress betyder, at du nemt kan bruge 80% af din tid til 20% af markedet. Det er langt bedre at bruge 80% af tiden til 80% af markedet. Med hensyn til kvalitetsprodukt og din egen bankbalance er det den sikreste tilgang.

I 14 vigtige WordPress-funktioner til spring-start tema udvikling Vi gik igennem nogle af de funktioner, som jeg uden grund har medtaget i mit startetema's funktioner.php. I denne artikel dækker vi en anden vigtig funktion, der skal foregå på din liste over vigtige WordPress-funktioner. Det vil spare dig både hoved og hjerte, smerter ned ad vejen.

WordPress begrænser allerede bagudkompatibilitet

Når en undgåelig udnyttelse bringer din kundes websted (der kører på dit tema) ned til knæ, hvem tror du, at de vil ringe? Lad mig redde dig gættet: Det er du, m'kay? Det er ligegyldigt, at det, der forårsager problemet, slet ikke er din skyld, for kunden, betyder det kun, at du er det nærmeste led i det mulige problem. Det sidste, de husker at gøre, er at ansætte dig for at opbygge et nyt tema for dem.

Hvis du ved inspektion finder, at klientens websted stadig kører på WordPress ældre end den nuværende stabile version, tager du et par sekunder og slår dig selv over ansigtet: venstre kind først og derefter højre kind. Dit tema bør ikke tillade dem at gøre det!

Hvis du har været opmærksom på, som om version 3.6 af WordPress, har du begyndt at bemærke en funktion, der ligger ret højt i standardtemaets funktioner.php, der begrænsede brugen af ​​standardtemaet til versioner af WP nyere end 3.6. Faktisk er det den anden funktion, der er defineret i Twenty Fourteen's functions.php !

Den funktion ser sådan ud:

/*** 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 er interesserede i indholdet af den back-kompat.php- fil. Funktionerne der er defineret der er, hvad vi efterspørger til brug med vores egne temaer.

Intet land til gammel WordPress

Det er næsten ligegyldigt, hvilke funktioner du implementerer, men hvis det er muligt, begrænse brugen af ​​dine temaer til rimeligt nye versioner af WordPress. Det vil sikre, at slutbrugeren opdaterer deres installation (jo bedre for dem med hensyn til sikkerhed) og sikrer, at du bruger størstedelen af ​​din udviklingstid hos de fleste brugere.

Definerer funktionen

For at opnå dette bruger vi funktionen PHP version_compare () til at kontrollere den aktuelt installerede version af WordPress mod den seneste tilgængelige version, og sørg for, at den seneste installerede version ikke er lavere end 3,6-foretag dit eget valg på hvilken version der skal testes for, 3.6 er ikke en anbefaling, bare et eksempel. Den funktion ser sådan ud:

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' );}

Hvad denne funktion gør er at definere en actionfunktion butter_never_get_old () , der kun kører, når navnefunktionen after_switch_theme () kaldes. Indtil videre har funktionen butter_never_get_old () , som sidder inde i vores versionskontrol, gjort følgende:

  1. Kontrollerer, hvilken version af WordPress der aktuelt er installeret
  2. Kontrollerer, at versionen er nyere end version 3.6
  3. Kører den kosmisk relevante If / Else:
  4. Hvis det er: Aktiver temaet.
  5. Hvis det ikke er tilfældet: Aktivér ikke temaet. I stedet genaktiverer / aktiverer du standardtemaet, og for at være rart skal du sende en fin lille besked, der instruerer brugeren om at opgradere deres latterligt gamle installation. Kom igen, Bedstefar!

Nudge, nudge! Opgrader det s #% *

Dernæst skal vi definere funktionen butter_step_your_game_up () , som udskriver vores administrationsmeddelelser, hvis noget skal gå galt, hvilket tilsyneladende betyder, at WP-versionen er ældre end vi gerne vil.

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 );}

Ovenstående butter_step_your_game_up () -funktion angiver vores oversættelige fejlmeddelelsesstreng i $ update_message- variablen som defineret (dette tema kræver ... osv.), Som derefter udskrives og vises til brugeren (fra den tidligere definerede butter_never_get_old () -funktion) og visuelt inde en div med klasse af 'fejl'. Denne besked, du kan derefter style som ønsket.

Så alt sagt, vores funktion skal se sådan ud:

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å plads sikrer du, at dit tema ikke kan aktiveres på WordPress installationer ældre end version 3.6.

Hold det rent

Så vidt muligt skal du holde dine funktioner.php rene. Det skal være rent i den forstand, at du skal kunne scanne hurtigt og straks skelne hvad hver funktion gør. Til dette formål vil vi måske flytte vores funktion til en inkluderet mappe.

Hvis du ikke allerede har oprettet, skal du oprette en mappe og kalde den 'inc' inde i dit temas katalog. Inde i det, opret en php-fil og navngiv det back-kompat.php . Kopier og indsæt indholdet af den funktion, vi netop har oprettet, og kun efterlader version_compare () i functions.php:

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

Inden for filen /inc/back-compat.php , indsæt de funktioner, vi tidligere definerede:

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 );}

Konklusion

Det er altid en hård sælger at fortælle en god udvikler, at de skal begrænse kompatibiliteten af ​​deres kode. Men den store størrelse af WordPress-kodebase, især når du fokuserer på baglæns kompatibilitet, begrænser temaets omfang en praktisk nødvendighed. WordPress selv gør det, bør fremhæve dens gyldighed.

Og nu, befriet fra de konstante forhindringer, der præsenteres ved forældet kode, kan du fokusere dine energier, hvor de hører til: på at udnytte den fantastiske magt af WordPress.

Fremhævet billede / miniaturebillede, anvendelser kompatibilitetsbillede via Shutterstock.