Bruke TGM Plugin Activation Library i dine temaer

Temaer er ikke ment å være funksjonelle, men som temautviklere trenger vi for det meste å inkludere noen funksjoner for å gjøre temaet litt bedre og en funksjon, du vet, funksjonell. 

I denne opplæringen skal vi få et blikk på begrepet "plugin territory" og lære å bruke et fantastisk verktøy skrevet av Thomas Griffin: TGM Plugin Activation Library.

Tema Funksjonalitet: Invaderende Plugin Territory

Temaer er ment å endre utformingen av ditt WordPress-nettsted. Ideelt sett bør det være visuell. Men i denne gyldne alderen av WordPress, inneholder temautviklere ofte funksjonelle funksjoner i deres temaer for å forbli konkurransedyktige i markedet. Dette var det ment å være, men det er.

Dette er invasjonen av plugin-området. Vi kan definere "plugin territory" på enkle vilkår: Funksjonelle deler av koden er innenfor grensene til dette området. Hver kode som endrer funksjonaliteten til nettstedet ditt, må bli servert som et plugin, hvis det ikke allerede er servert i WordPress-kjerne. 

I et av mine tidligere innlegg (i serien "Making the Perfect WordPress Theme"), nevnte jeg tommelfingerregel av "plugin territory":

Hvis funksjonen handler om visuelt utseende av nettstedet, bør det være i temaet, men om det handler om funksjonalitet av et nettsted, bør det inkluderes som et eget plugin.

Lett nok, rett? 

Selv om folk fremdeles har en tendens til å kode hardt funksjonelle biter i deres temaer, aksepterer ikke temakataloger (som WordPress.org og ThemeForest) temaer som invaderer "plugin territory". Så det har blitt et problem å tilby funksjonalitet med temaer.

Heldigvis er det en ganske enkel løsning, og det går ikke mot "plugin territory" -regelen.

Innføring av TGM Plugin Activation Library

TGM Plugin Activation er et lettbibliotek med det formål å kombinere temaer med plugins. Ideen er enkel: Når en bruker installerer temaet, gjør det at brukeren installerer plugins fra WordPress.org, et eksternt nettsted eller temamappen. Her er hva Thomas Griffin, skaperen av biblioteket, definerer dette praktiske lille verktøyet:

TGM Plugin Activation er et PHP-bibliotek som lar deg enkelt kreve eller anbefale plugins for WordPress-temaene (og pluginene). Det lar brukerne å installere og til og med automatisk aktivere plugins på singular eller bulk mote ved hjelp av native WordPress-klasser, funksjoner og grensesnitt. Du kan referere til forhåndsdefinerte plugins, plugins fra WordPress Plugin Repository eller til og med plugins hosted andre steder på internett.

Dette er trolig den smarteste løsningen på "plugin territory invasion" -problemet. Og det er ganske enkelt å søke også. 

La oss se!

Installere TGM Plugin Activation

Installere TGM Plugin Activation er latterlig lett. Bare følg disse trinnene:

  • Last ned TGM Plugin Activation Library fra "Download" delen av siden.
  • Åpne zip-filen og trekk ut klasse-TGM-plugin-activation.php inn i temamappen din (hvor som helst du vil).
  • Åpne temaet ditt functions.php fil og bruk require_once () funksjon til, vel, kreve klassefilen (en gang) i temaet ditt.
  • Opprett en funksjon for å konfigurere TGM Plugin Activation og koble den til tgmpa_register via ADD_ACTION () funksjon.
  • Ferdig!

Det er så enkelt at du ikke engang trenger komplisert PHP-kode for å kreve eller anbefale plugins. Ta en titt på koden nedenfor:

Fra nå av kan du få brukerne til å installere nye plugins ved å sette opp $ plugins variabel i funksjonen du nettopp har opprettet. 

La oss se hvordan det er gjort.

Installere plugins med TGM Plugin Activation

Som du kan se ovenfra, er $ plugins variabel er en matrise. Og for å definere plugins for å installere, må du lage arrayer i det arrayet (slik at du kan angi egne parametere). Høres hardt, men det er ikke:

Det er et par parametere å bruke:

  • Navn (streng, kreves) - Navnet på plugin.
  • slug (streng, kreves) - Sluggen i pluginet (vanligvis navnet på mappen).
  • nødvendig (boolean, nødvendig) - Hvis den er satt til ekte, temaet ditt vil "kreve" pluginet. Hvis falsk, temaet vil "anbefale" det.
  • kilde (streng, noen ganger nødvendig) - Kilden til plugin. Hvis det er et WordPress.org-plugin, bør denne parameteren ikke brukes; ellers er det nødvendig.
  • versjon (streng, valgfritt) - Minimumsversjonen som kreves for plugin. For eksempel; Hvis tema brukeren allerede har installert et nødvendig plugin, men ikke har det minste versjonen du oppgav, advarsler TGM Plugin Activation brukeren om å oppdatere den.
  • force_activation (boolean, valgfritt) - Hvis satt til ekte, brukeren vil ikke kunne deaktivere plugin mens temaet ditt er aktivt. Litt irriterende, men det kan være nødvendig i noen scenarier.
  • force_deactivation (boolean, valgfritt) - Hvis satt til ekte, Plugin blir deaktivert når brukeren bytter tema.
  • external_url (streng, valgfritt) - Hvis innstilt, vil navnet på pluginet være knyttet til denne adressen i innkallingsplikten.

Du har tre alternativer for å få brukerne til å installere plugins med TGM Plugin Activation: Du kan kreve et plugin fra WordPress Plugin Directory, fra en ekstern kilde (som din egen server eller en CDN) eller fra temamappen din (som /my-theme/plugins/shortcodes.zip).

Krever et plugin fra WordPress.org

 'BuddyPress', 'slug' => 'buddypress', 'required' => false, // dette pluginet anbefales)); ?>

Krever et plugin fra en ekstern kilde

 'My Awesome Plugin', 'slug' => 'My-awesome-plugin', 'source' => 'http://files.my-website.com/my-awesome-plugin.zip', 'required' = ' > true, // dette pluginet kreves 'external_url' => 'http://my-website.com/introducing-my-awesome-plugin', // side av pluginet mitt 'force_deactivation' => true, // deaktivere dette pluginet når brukeren bytter til et annet tema)); ?>

Krever et plugin fra Theme Directory

 'My Super Sleek Slider', 'slug' => 'my-super-slank-slider', 'source' => get_stylesheet_directory (). '/lib/plugins/my-super-sleek-slider.zip', // Den "interne" kilden til plugin. 'required' => true, // dette pluginet kreves 'version' => '1.2', // brukeren må bruke versjon 1.2 (eller høyere) av dette pluginet 'force_activation' => false, // dette pluginet går å bli aktivert med mindre brukeren bytter til et annet tema)); ?>

Konfigurere TGM Plugin Activation

Legg merke til tgmpa () Fungerer med to parametere på slutten av vår eksempelkode? Den andre parameteren er $ config variabel som også skjer for å være en matrise, akkurat som $ plugins parameter. Som navnet antyder, kan du konfigurere TGM Plugin Activation-biblioteket med dette arrayet. Den har også sitt eget sett med alternativer som du må angi:

  • id (streng) - En unik ID for TGM Plugin Activation-biblioteket som du implementerte i temaet ditt. Dette er faktisk veldig viktig: Hvis en annen plugin også bruker TGM Plugin Activation, ville de forskjellige IDene forhindre konflikter.
  • default_path (streng) - Standard absolutt bane for plugins inne i temaet ditt. Når du angir dette, kan du bare bruke navnet på ZIP-filen som kilde parameter for plugin.
  • Meny (streng) - Menysluggen for installeringssiden for plugin.
  • has_notices (boolsk) - Hvis satt til ekte, Administrasjonsmeldinger vises for nødvendige / anbefalte pluginprogrammer.
  • dismissible (boolsk) - Hvis satt til ekte, Brukeren kan "avvise" meldingene.
  • dismiss_msg (streng) - Hvis dismissable Alternativet er satt til feil, denne meldingen vil bli vist over administrasjonen.
  • is_automatic (boolsk) - Hvis satt til ekte, plugins vil bli aktivert etter at brukeren har samtykket i å installere dem.
  • budskap (streng) - Valgfri HTML som skal vises før plugin-tabellen.
  • strenger (array) - enda en annen matrise som inkluderer meldingene som skal vises. Du kan også sette dem som oversetterbare strenger. Sjekk ut example.php fil for å se hele listen over meldingsstrenger.
 'mytheme-tgmpa', // din unike TGMPA ID 'default_path' => get_stylesheet_directory (). '/ lib / plugins /', // standard absolutt bane 'menu' => 'mytheme-install-required-plugins', // menyslug 'has_notices' => true, // Vis admin notices 'dismissable' => false , // meldingene er IKKE avvisbare 'dismiss_msg' => 'Jeg virkelig, virkelig trenger deg til å installere disse pluginene, ok?', // denne meldingen vil bli sendt ut over Nag 'is_automatic' => true, // automatisk aktiver plugins etter installasjon 'message' => '', // melding til utdata rett før pluginbordet' strings '=> array (); // Utvalget av meldingsstrenger som TGM Plugin Activation bruker); ?>

Wrapping Everything Up

Som du ser, er det ikke umulig å tilby funksjonalitet med WordPress-temaer - du må bare tenke på brukerne når de bytter fra tema til et annet. TGM Plugin Activation Library tilbyr en veldig smart måte å spille av ved boken.

Hva synes du om dette verktøyet? Har du noen gang brukt det, eller har du tenkt å bruke det i fremtiden? Fortell oss hva du synes ved å kommentere nedenfor. Og hvis du likte denne artikkelen, ikke glem å dele den med vennene dine!