Kotel WordPress Plugin Boilerplate 101: Jak začít

Od založení pluginů WordPress asi před 10 lety se toho ve způsobu, jakým je píšeme, příliš nezměnilo. Existuje hlavní soubor pluginu se záhlavím, za nímž následuje Wild West. Kromě použití háčků neexistuje standardizovaný způsob výroby pluginů.


To není nutně problém. Existuje mnoho jednoduchých pluginů, které nepotřebují řídící rámec, a někteří lidé mohou psát dokonale koherentní procedurální kód. Kvalita kódu v zásuvných modulech však obecně není nejlepší, rámec nebo metodika by při jeho zvyšování trvala dlouhou cestu.

V tomto článku se podívám na jedno možné řešení – WordPress Plugin Boilerplate. Je zamýšlen jako výchozí bod pro vývoj pluginu, objektově orientovaný způsob vytváření standardizovaného pluginu. Protože je kódován principy OOP, je určen hlavně pro přechodné kodéry, ale můžete jej snadno použít i jako začátečník, pokud víte, kam se kam jít. Na konci tohoto článku byste měli vědět, co je co a jak s ním můžete začít – bez ohledu na vaše zkušenosti s kódováním.

Obecná struktura souborů

Kotlářská deska je určena k použití jako úložiště Github, takže hlavní adresář obsahuje soubory, které se běžně nacházejí v úložišti Github. Soubor README.md je obecný soubor readme a zobrazuje se na stránce hlavního úložiště jako popis. Soubor CHANGELOG.md slouží k zaznamenávání změn mezi verzí a soubor .gitignore slouží k nastavení souborů, které by git měl při práci se soubory ignorovat.

Hlavní složka zde plugin-name je místo, kde je plugin uložen. Jeho struktura sleduje úložiště WordPress a můžete "check in" tuto složku do repozitáře pluginů SVN. Ve výchozím nastavení obsahuje složku aktiv, která ukládá obrázky a snímky obrazovky pro váš plugin, a složku kufru, která obsahuje kód pro plugin.

Složka kufru obsahuje to, co obsahuje plugin, můžete tuto složku vložit do instalace WordPress a aktivovat plugin. Obsah této složky se podrobně podíváme o něco později. Než to uděláme, připravme obchod.

new-plugin

Nastavení všeho nahoru

Mít všechny tyto složky a úžasnost SVN / Git na jednom místě je vše dobré a dobré, ale jak to vlastně můžete použít? Nemůžete zkontrolovat celou složku přímo do složky s pluginy, prostě to nebude fungovat. Odhlášení pouze do adresáře kufru je problémem a navíc nebudete mít přístup k souborům mimo tento adresář.

Dovolte mi ukázat vám můj oblíbený způsob nastavení věcí. Mám v počítači složku s následující strukturou:

  • github
    • Hlavní autoři
    • Snadné obrázky
    • Časové osy Twitter-User
  • html
    • wp-admin
    • wp-content
    • wp-zahrnuje
    • další soubory wordpress
  • wordpress
    • nejlepší autoři
    • snadno představitelné obrázky
    • twitter-user-timeline

Ve složce html je nainstalován WordPress. Složka github obsahuje všechny mé doplňky WordPress od společnosti Github. Složka wordpress obsahuje stejné pluginy, které byly staženy pomocí SVN z úložiště WordPress.

Vytváření symbolického odkazu

Prvním krokem, který udělám, je vytvoření vanilkové verze WordPress Plugin Boilerplate na Githubu. Pak to zkontroluji do své složky github. Dále vytvořím symbolický odkaz mezi složkou kmene v adresáři wp-content / plugins mé instalace WordPress.

Symlinks je odkaz na soubor nebo složku, která podle svého očekávání vyřeší svůj cíl. Konečným výsledkem je, že pokud odinstalujete plugin z libovolného místa v systému do adresáře WordPress, bude to fungovat dobře. To vám přináší následující výhody:

  • Pluginy můžete ukládat jinde.
  • Složky můžete zkompletovat z většího úložiště.
  • Stejný plugin můžete symlink do více instalací.

Vytvoření symbolu je snadné z terminálu nebo z příkazového řádku systému Windows. Navrhuji otevřít jeden a přejděte do adresáře plugins vaší instalace WordPress. Potom zadejte následující příkaz:

# Pro OSX nebo Linux
ln -s / absolute / cesta / k / github / My-Plugin-Name / my-plugin-name / trunk my-plugin-name

# Pro Windows
mklink / j C: \ absolute \ path \ to \ github \ My-Plugin-Name my-plugin-name

Tím se vytvoří odkaz z první cesty na druhou. První cesta je absolutní cesta k adresáři kmene ve vašem úložišti Github. Druhým je pouze název složky, se kterou chcete propojit, když už jste v adresáři plugins vaší instalace WordPress..

Jakmile to uděláte, měli byste vidět svůj nový plugin, stejně jako na obrázku výše. Budeme muset věci přizpůsobit, ale nyní máme náš plugin spuštěný z úložiště Github, díky čemuž se vývoj stává hodně jednodušší.

Přejmenování

V adresáři kufru je mnoho složek a souborů, začněme je přejmenovávat! Nejprve ze všeho doporučuji pojmenovat svůj repozitář pomlčkami a velkými písmeny, například takto: My-Awesome-Plugin. Hlavní složka uvnitř by měla být pojmenována ‘my-awesome-plugin’. Doporučuji používat tuto konvenci v celém pluginu.

Přejmenování souborů je v OSX snadné. Otevřete všechny složky a vyberte všechny soubory, které v nich obsahují řetězec plugin-name. Klepnutím pravým tlačítkem přejmenujete všech 14 souborů a šarže přejmenujete hodně.

přejmenovat

Ve Windows to bude o něco složitější, podívejte se na to HowToGeek článek pro více informací, nebo prostě jít jeden po druhém.

Termíny jako "plugin-name" a další variace jsou šířeny po celém obsahu souboru. Můžeš použít Sublimovat, Atom.io nebo jiné schopné textové editory hromadně nahrazovat více souborů. Zde je seznam toho, co byste měli nahradit (ujistěte se, že budete vyhledávat nahrazující malá a velká písmena).

  • plugin_name by se měl stát my_awesome_plugin
  • Plugin_Name by se měl stát My_Awesome_Plugin
  • plugin-name by se měl stát mým úžasným pluginem

Až budete hotovi, nezapomeňte vyplnit komentář záhlaví hlavního souboru (my-awesome-plugin.php) a přizpůsobit jej vašim potřebám.

Obsah

Ve WordPress Plugin Boilerplate je mnoho. Cílem je stanovit přísné pokyny, kam můžete věci vkládat. Existuje jedno konkrétní místo pro přidání háčků, například standardní místo pro přidávání front-end funkcí atd. Pojďme se podívat na hlavní části rámce.

Všimněte si, že budu odkazovat na soubory tak, jak byly přejmenovány, například: include / class-my-awesome-plugin.php. Pokud jste svůj plugin přejmenovali na něco jiného, ​​musíte si uvědomit, že část názvu mého úžasného pluginu se bude pro vás lišit.

Aktivace, deaktivace a odinstalace

Jakýkoli kód, který chcete spustit při aktivaci pluginu, by měl obsahovat kód / my-awesome-plugin-name-activator.php. V tomto souboru je třída s názvem My_Awesome_Plugin_Activator, uvnitř které je metoda Activ (), kterou byste měli použít.

Nedělejte si starosti, pokud ještě nejste na objektech na rychlosti, vědění, kam dát věci, bude stačit, abyste mohli začít.

Kód, který potřebujete spustit při deaktivaci, by měl být umístěn v souboru / my-awesome-plugin-name-deactivator.php. Musíte použít metodu Activ () v My_Awesome_Plugin_Deactivator..

Myslíte si, že je to příliš složité? Neobviňuji tě! Když začnete používat objektově orientované koncepty, uvidíte výhody plynoucí z procedurálního kódu. Pokud nic jiného, ​​poskytuje velmi zřejmé místo pro vložení kódu, což je samo o sobě obrovská pomoc.

Pro odinstalování je doporučenou metodou použít uninstall.php, což je to, co dělá WordPress Plugin Boilerplate. Váš kód by měl být umístěn na samém spodku tohoto souboru.

Přidání háčků

Háčky zpracovává WordPress Plugin Boilerplate úžasně, ale na první pohled se to může zdát trochu nepraktické. Všechny vaše háčky by měly být umístěny v souboru / class-my-awesome-plugin.php. Konkrétněji uvnitř třídy My_Awesome_Plugin, dvěma způsoby:

  • define_public_hooks () při přidávání háčku, který se používá na front-endu
  • define_admin_hooks (), když přidáváte háček, který se používá na pozadí

Namísto použití add_action () nebo add_filter () jako obvykle budete muset dělat věci trochu jinak. Takto například upravíte obsah příspěvku.

$ this->zavaděč->add_action (‘the_content’, $ plugin_public, ‘modifik_post_content’);

První parametr je název háku, druhý je odkaz na veřejný nebo admin objekt. Pro veřejné háčky by to mělo být $ plugin_public, pro administrátorské háčky by to mělo být $ plugin_admin. Třetím parametrem je závislá funkce.

I když se to zdá spletitější, standardizuje přidávání háčků úplně a rozděluje je do dvou odlišných skupin v procesu.

Veřejný a administrativní obsah

WordPress Plugin Boilerplate rozdělí háčky do skupin admin / public, ale to není vše. Rozdělí váš kód stejným způsobem tak, že vás požádá o napsání veřejně orientovaného kódu do veřejné složky a admin orientovaného kódu do složky správce.

Obě složky obsahují složky css, js a partials. Do těchto složek byste měli umístit použitý materiál CSS / JS a do složky s částmi zapsat šablony a další opakovaně použitelné kousky HTML. Je v pořádku vytvářet nové soubory ve složce Partials, ve skutečnosti je to právě to!

Své připojené funkce byste také měli zapisovat do těchto složek, do třídy v příslušných adresářích. Když jsme připojili funkci define_post_content k the_content výše, řekli jsme WordPress Plugin Boilerplate, kde ji také hledat. Protože jsme to přidali na veřejnou stranu, WordPress Plugin Boilerplate očekává, že bude definován ve třídě My_Awesome_Plugin_Public, která je ve veřejné složce. Jednoduše vytvořte tuto funkci ve třídě a vše ostatní zapište jako obvykle.

Zdroje a závislosti

Pokud chcete použít externí zdroje, například Aktivace pluginu TGM, měli byste to přidat do složky obsahující. TGM je jediný soubor s názvem class-tgm-plugin-Activation.php, který by měl být zahrnut do souboru class-my-awesome-plugin.php v rámci metody load_dependencies ():

define_once plugin_dir_path (dirname (__FILE__)). ‘zahrnuje / class-tgm-plugin-Activation.php’;

Přehled

Jste zmateni všemi jmény a funkcemi souborů? Nedělejte si starosti, rychle to zvládnete. Ve skutečnosti obvykle upravujete pouze tři soubory:

  • zahrnuje / class-my-awesome-plugin.php je místo, kde přidáte všechny své háčky a závislosti.
  • public / class-my-awesome-plugin-public.php je místo, kde přidáte všechny veřejné funkce.
  • admin / class-my-awesome-plugin-admin.php je místo, kde jdou všechny funkce pro správu.

Zpočátku se může použití WordPress Plugin Boilerplate zdát jako hádka, ale nakonec se vyplatí. O rok později se vrátíte a budete vědět, kde je vše, vývoj vašeho pluginu bude standardizován napříč produkty a další vývojáři budou schopni zjistit, co se také děje.

Nakonec nezapomeňte, že plugin poskytující jednoduchý widget nemusí takový rámec potřebovat. Zatímco použití WordPress Plugin Boilerplate nezpomalí váš plugin, ucpává zobrazení, pokud potřebujete jen několik jednoduchých řádků kódu!

Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me
    Like this post? Please share to your friends:
    Adblock
    detector
    map