Teman är inte menat att vara funktionell, men som temat utvecklare måste vi mest använda några funktioner för att göra vårt tema lite bättre och en funktion, du vet, funktionell.
I denna handledning kommer vi att få en blick på termen "plugin territory" och lär dig att använda ett fantastiskt verktyg skrivet av Thomas Griffin: TGM Plugin Activation Library.
Teman är avsett att ändra utformningen av din WordPress-webbplats. Helst bör det vara visuell. Men i denna guldålder av WordPress innehåller temat utvecklare ofta funktionella funktioner i sina teman för att vara konkurrenskraftiga på marknaden. Detta skulle det vara, men det är det.
Detta är invasionen av plugin-territoriet. Vi kan definiera "plugin territory" i enkla termer: Funktionella delar av koden ligger inom gränserna för detta territorium. Varje bit av kod som ändrar webbplatsens funktionalitet måste betjänas som ett plugin, om det inte redan har serverats i WordPress-kärnan.
I en av mina tidigare inlägg (i serien "Making the Perfect WordPress Theme") nämnde jag tumregel av "plugin territory":
Om funktionen handlar om utseende av webbplatsen ska det vara i temat, men om det handlar om funktionalitet av en webbplats ska den inkluderas som ett separat plugin.
Lätt nog, höger?
Även om människor fortfarande tenderar att hårdkoda funktionella bitar i sina teman accepterar temakataloger (som WordPress.org och ThemeForest) inte teman som invaderar "plugin territory". Så det har blivit ett problem att erbjuda funktionalitet med teman.
Lyckligtvis finns det en ganska enkel lösning och det går inte emot "plugin territory" -regeln.
TGM Plugin Activation är ett lättviktsbibliotek med syfte att kombinera teman med plugins. Tanken är enkel: När en användare installerar ditt tema, gör det användaren att installera plugins från WordPress.org, en extern webbplats eller temamappen. Här är vad Thomas Griffin, skaparen av biblioteket, definierar det här praktiska lilla verktyget:
TGM Plugin Activation är ett PHP-bibliotek som låter dig enkelt kräva eller rekommendera plugins till dina WordPress-teman (och plugins). Det låter dina användare installera och till och med automatiskt aktivera plugins i singular eller bulk mode med inbyggda WordPress-klasser, funktioner och gränssnitt. Du kan referera till förpackade plugins, plugins från Plugin Repository för WordPress eller till och med plugins som finns på andra håll på internet.
Detta är förmodligen den smartaste lösningen på problemet med "invasion av invasion". Och det är ganska enkelt att ansöka också.
Låt oss ta en titt!
Installera TGM Plugin Activation är löjligt enkelt. Följ bara dessa steg:
klass-TGM-plugin-activation.php
in i tematmappen (var som helst du vill).functions.php
fil och använd require_once ()
funktion till, ja, kräva klassfilen (en gång) i ditt tema.tgmpa_register
via add_action ()
fungera.Det är så enkelt att du inte ens behöver komplicerad PHP-kod för att behöva eller rekommendera plugins. Ta en titt på koden nedan:
Från och med nu kan du få dina användare att installera nya plugins genom att ställa in $ plugins
variabel i den funktion du just skapat.
Låt oss se hur det är gjort.
Som du kan se ovanför, $ plugins
variabeln är en grupp. Och för att definiera plugins som ska installeras måste du skapa arrayer inom den här matrisen (så att du kan ställa in egna parametrar). Låter hårt, men det är inte:
Det finns ett par parametrar att använda:
namn
(sträng, krävs) - Pluginens namn.snigel
(sträng, krävs) - Sluggen i plugin (vanligtvis mappens namn).nödvändig
(boolean, krävs) - Om den är inställd Sann
, Ditt tema kommer att kräva plugin. Om falsk
, temat kommer att "rekommendera" det.källa
(sträng, ibland krävs) - Källan till plugin. Om det är ett WordPress.org-plugin, ska den här parametern inte användas. annars krävs det.version
(sträng, valfritt) - Den minsta versionen som krävs för plugin. Till exempel; om temanvändaren redan har installerat ett obligatoriskt plugin men inte har det minsta versionsnummer du angav, varnar TGM Plugin Activation användaren för att uppdatera den.force_activation
(booleskt, valfritt) - Om den är inställd på Sann
, användaren kan inte avaktivera plugin medan ditt tema är aktivt. Lite irriterande men det kan vara nödvändigt i vissa scenarier.force_deactivation
(booleskt, valfritt) - Om den är inställd på Sann
, plugin kommer att stängas av när användaren byter tema.external_url
(sträng, valfritt) - Om det är inställt, kopplas namnet på plugin till den här adressen i meddelandet om plugin-krav.Du har tre alternativ för att få dina användare att installera plugins med TGM Plugin Activation: Du kan kräva ett plugin från WordPress Plugin Directory, från en extern källa (som din egen server eller en CDN) eller från din temapapp (till exempel /my-theme/plugins/shortcodes.zip
).
'BuddyPress', 'slug' => 'buddypress', 'required' => false, // det här plugin rekommenderas)); ?>
'My Awesome Plugin', 'slug' => 'my-awesome-plugin', 'source' => 'http://files.my-website.com/my-awesome-plugin.zip', 'required' = ' > true, // detta plugin krävs "external_url '=>' http://my-website.com/introducing-my-awesome-plugin ', // sidan av mitt plugin' force_deactivation '=> true, // deaktivera denna plugin när användaren byter till ett annat tema)); ?>
'My Super Sleek Slider', 'slug' => 'my-super-slick-slider', 'source' => get_stylesheet_directory (). '/lib/plugins/my-super-sleek-slider.zip', // Den "interna" källan till plugin. 'required' => true, // det här pluginet krävs 'version' => '1.2', // användaren måste använda version 1.2 (eller högre) av detta plugin 'force_activation' => false, // det här pluginet går att vara aktiverad om inte användaren byter till ett annat tema)); ?>
Lägg märke till tgmpa ()
Funktion med två parametrar i slutet av vår exempelkod? Den andra parametern är $ config
variabel som också råkar vara en array, precis som $ plugins
parameter. Som namnet antyder kan du konfigurera TGM Plugin Activation-biblioteket med denna array. Den har också sin egen uppsättning alternativ som du behöver ställa in:
id
(sträng) - Ett unikt ID för TGM Plugin Activation-biblioteket som du implementerade i ditt tema. Detta är faktiskt mycket viktigt: Om ett annat plugin också använder TGM Plugin Activation, skulle de olika ID: erna förhindra konflikter.default_path
(sträng) - Standard absolut sökväg för plugins inuti ditt tema. När du ställer in det här kan du bara använda namnet på ZIP-filen som källa
parameter för din plugin.meny
(sträng) - Menyns slug för plugin-installationssidan.has_notices
(booleska) - Om den är inställd på Sann
, Adminmeddelanden visas för nödvändiga / rekommenderade plugins.dismissible
(booleska) - Om den är inställd på Sann
, Användaren kan "avvisa" meddelandena.dismiss_msg
(sträng) - Om dismissable
Alternativet är inställt på felaktigt, det här meddelandet visas ovanför adminmeddelandet.is_automatic
(booleska) - Om den är inställd på Sann
, plugins aktiveras efter att användaren har samtyckt till att installera dem.meddelande
(sträng) - Valfri HTML som ska visas före plugins-tabellen.strängar
(array) - ännu en annan array
det inkluderar de meddelanden som ska visas. Du kan också ställa in dem som översättningsbara strängar. Kolla in example.php
fil för att se hela listan med meddelandesträngar.'mytheme-tgmpa', // ditt unika TGMPA ID 'default_path' => get_stylesheet_directory (). '/ lib / plugins /', // standard absolut sökväg 'meny' => 'mytheme-install-required-plugins', // menysslug 'has_notices' => true, // Visa admin notices 'dismissable' => false , // meddelandena INTE kan avvisas 'dismiss_msg' => 'Jag behöver verkligen dig att installera dessa plugins, okej?', // det här meddelandet kommer att skrivas ut på toppen av nag 'is_automatic' => true, // automatically aktivera plugins efter installationen 'message' => '', // meddelande för att mata ut direkt före pluginbordet' strings '=> array (); // Mängden meddelandesträngar som TGM Plugin Activation använder); ?>
Som du kan se är det inte alls omöjligt att erbjuda funktionalitet med WordPress-teman - du måste bara tänka på användarna när de byter från ditt tema till en annan. TGM Plugin Activation Library erbjuder ett riktigt smart sätt att spela det genom boken.
Vad tycker du om det här verktyget? Har du någonsin använt den, eller tänker du använda den i framtiden? Berätta vad du tycker genom att kommentera nedan. Och om du gillade den här artikeln, glöm inte att dela den med dina vänner!