Som webdesignere går det mot naturen vår for å begrense tilgangen til koden vår. Vi læres å maksimere kompatibiliteten til våre nettsider og streber etter kompatibilitet bakover når det er mulig. å skape gradvis forbedrede og graciøst nedverdigende nettsteder. Hvis vi kan få det til å fungere på IE1, er det ikke noe dårlig ...

Problemet, i hvert fall for WordPress-utviklere, er at WordPress er et monster; det vil svelge deg og ditt vakre lille prosjekt hele hvis du lar det gå.

Når du produserer et WordPress-tema, enten som en skreddersydd jobb for en bestemt klient, eller å videreselge på en av de mange WordPress-markedsplassene, kan målet ditt aldri være å dekke alt som noen gang har vært en del av WordPress. I stedet må målet ditt være å bruke nøkkelfunksjoner, funksjoner og filtre på best mulig måte for å maksimere gjeldende kodebase.

Som profesjonell er tiden din penger, jo lenger du bruker på din utvikling, desto mindre fortjeneste gjør du; det er en enkel ligning. Størrelsen på WordPress betyr at du enkelt kan bruke 80% av tiden din med 20% av markedet. Det er langt bedre å bruke 80% av tiden med 80% av markedet. Når det gjelder kvalitetsprodukt og din egen bankbalanse, er det den sikreste tilnærmingen.

I 14 viktige WordPress-funksjoner for å hoppe på temautvikling Vi gikk gjennom noen av funksjonene som jeg uten å ta med, inkluderer jeg i startbilde-temaets funksjoner.php. I denne artikkelen dekker vi en annen viktig funksjon som bør gå på listen over viktige WordPress-funksjoner. Det vil redde deg både hodet og hjertet, smerter nedover veien.

WordPress begrenser allerede bakoverkompatibilitet

Når en unødvendig utnyttelse bringer kundens nettsted (som kjører på temaet) ned til knærne, hvem tror du de vil ringe? La meg redde gjetningen: er du, m'kay? Det spiller ingen rolle at det som er årsaken til problemet ikke er helt feil, til klienten, betyr det bare at du er nærmeste lenke til det mulige problemet. Det siste de husker å gjøre, er å ansette deg for å bygge et nytt tema for dem.

Hvis du ved inspeksjon finner at klientens nettsted fortsatt kjører på WordPress eldre enn den nåværende stabile versjonen, ta noen sekunder og slår deg over ansiktet: venstre kinn først, deretter høyre kinn. Ditt tema bør ikke tillate dem å gjøre det!

Hvis du har vært oppmerksom på, som om versjon 3.6 av WordPress, har du begynt å legge merke til en funksjon ganske høyt oppe i standardtemaets funksjoner.php som begrenset bruken av standardtemaet til versjoner av WP nyere enn 3.6. Faktisk er det den andre funksjonen som er definert i Twenty Fourteens funksjoner.php !

Den funksjonen ser noe ut som dette:

/*** 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 interessert i innholdet i den back-kompat.php- filen. Funksjonene som er definert der, er det vi er ute etter for bruk med våre egne temaer.

Ingen land for gammel WordPress

Det spiller nesten ingen rolle hvilke funksjoner du implementerer, men om mulig begrenser bruken av temaene dine til rimelig nye versjoner av WordPress. Det vil sørge for at sluttbruker oppdaterer sin installasjon (jo bedre for dem når det gjelder sikkerhet) og sikrer at du bruker mesteparten av utviklingen din på de fleste brukere.

Definere funksjonen

For å oppnå dette bruker vi funksjonen PHP version_compare () til å sjekke den oppdaterte versjonen av WordPress mot den nyeste tilgjengelige versjonen, og sørg for at den nyeste installerte versjonen ikke er lavere enn 3,6-gjør ditt eget valg på hvilken versjon som skal testes for, 3.6 er ikke en anbefaling, bare et eksempel. Den funksjonen ser noe ut som dette:

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

Hva denne funksjonen gjør er å definere en handlingsfunksjon butter_never_get_old () som bare vil kjøre når kjernefunksjonen after_switch_theme () kalles. Så langt, funksjonen butter_never_get_old () , som sitter inne i vår versjonskontroll, gjør følgende:

  1. Kontrollerer hvilken versjon av WordPress som er installert
  2. Kontroller at versjonen er nyere enn versjon 3.6
  3. Kjører den kosmisk relevante If / Else:
  4. Hvis det er: Aktiver temaet.
  5. Hvis det ikke er: Ikke aktiver temaet. I stedet gjenaktiver / aktiver standardtemaet og, for å være hyggelig, skriv ut en fin liten melding som instruerer brukeren om å oppgradere sin latterlig gamle installasjon. Kom igjen, bestefar!

Nudge, nudge! Oppgrader det s #% *

Deretter må vi definere butter_step_your_game_up () -funksjonen som skriver ut våre adminmeldinger hvis noe skulle gå galt, noe som tydeligvis betyr at WP-versjonen er eldre enn vi ønsker.

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

Den ovennevnte butter_step_your_game_up () -funksjonen setter vår oversetterlige feilmeldingstreng i $ update_message- variabelen som definert (dette temaet krever ... etc) som deretter skrives ut og vises til brukeren (fra den tidligere definerte butter_never_get_old () -funksjonen) og visuelt inne en div med klasse av "feil". Denne meldingen kan du så stil som ønsket.

Så, alt fortalt, bør vår funksjon se slik ut:

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å plass sikrer du at temaet ditt ikke kan aktiveres på WordPress-installasjoner eldre enn versjon 3.6.

Hold det rent

Så langt som mulig bør du holde dine funksjoner.php rene. Det bør være rent i den forstand at du skal kunne raskt skanne og umiddelbart skille mellom hva hver funksjon gjør. For det formål vil vi kanskje flytte vår funksjon til en inkluderingsmappe.

Hvis du ikke har allerede, lager du en mappe og navnet "inc" inne i temaets katalog. Inne i det lager du en php-fil og heter det som back-kompat.php . Kopier og lim inn innholdet i funksjonen vi nettopp har opprettet, og bare forlate 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 , lim inn funksjonene vi definerte tidligere:

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

Konklusjon

Det er alltid en tøff salg å fortelle en god utvikler at de må begrense kompatibiliteten til koden sin. Men den rene størrelsen på WordPress-kodebase, spesielt når du fokuserer på bakoverkompatibilitet, begrenser omfanget av temaet en praktisk nødvendighet. WordPress selv gjør dette bør markere sin gyldighet.

Og nå, befriet fra de konstante hindringene som presenteres ved utdatert kode, kan du fokusere dine energier der de tilhører: på å utnytte den fantastiske kraften til WordPress.

Utvalgt bilde / miniatyrbilde, bruk kompatibilitetsbilde via Shutterstock.