Chcete si vytvoriť jednoduchý plugin, pre rozšírenie funkcionality svojej stránky? Ak ste si ešte žiaden plugin nikdy nevytvorili, určite to znie šialene komplikovane. Pravdou je, že to nemusí byť až tak zložité.
V tomto článku si ukážeme, ako vytvoriť jednoduchý plugin.
Skôr ako začneme, pár slov prečo to vlastne robiť…
Pri každom snippete, návode atď nájdete odporúčanie, že kód patrí do functions.php
. V podstate to fungovať bude, ale…. Dôležité je si uvedomiť, na čo vlastne funcions.php
slúži.
- Pridáva assety potrebné pre fungovanie témy
- Rozširuje nastavenia témy
- Definuje veľkosti obrázkov
- Registruje widgety
- Registruje menu
- …
Keďže functions.php
je relevantný iba pre danú tému (jeho umiestnenie je: wp-content/themes/...vaša-tema.../functions.php
) takže sa pri zmene témy „stratia“ všetky nastavenia aplikované z tohto súboru a aktivujú sa nastavenia z novej témy (zo súboru functions.php
danej témy).
Z toho nám jasne vyplýva, že do tohto súboru patria nastavenia a funkcionality spojené iba s témou. Pre ostatné rozšírenia, ktoré pridávajú/rozširujú/menia funkcionalitu WordPress, alebo iných pluginov, je rozumné vytvoriť si vlastný plugin.
Ako teda vytvoriť vlastný plugin?
WordPress je úžasný! Rovnako aj vytvorenie pluginu je rovnako úžasné.
Najskôr si vytvoríme priečinok pre náš plugin (napríklad: viking-my-functions
– vždy sa snažte vytvoriť špecifický názov – inak sa vám môže stať, že niekto už daný názov vytvoril). Tento priečinok umiestnite do wp-content/plugins/
.
V tomto priečinku, budeme vytvárať náš plugin. V priečinku si teda vytvoríme náš hlavný súbor pluginu: viking-my-functions.php
. …a teraz príde „magic“… do súboru prídáme definíciu nášho pluginu pre WordPress
/** * Plugin Name: My site functions * Plugin URI: https://wp-admin.sk * Description: This plugin adds features / functions and enhancements to WordPress * Version: 1.0.0 * Requires PHP: 7.4 * Author: PeterB aka Viking * Author URI: https://wp-admin.sk * License: GPL2 */ /* Enter your code below */
Opäť, ako u témy, v hlavičke súboru je pár informácií, ktoré potrebuje WordPress pre to, aby vedel identifikovať náš plugin. Jediný povinný riadok je prvý: Plugin Name: My site functions
. Je však super, vyplniť aj niektoré iné riadky, hlavne, keď to nieje pre vašu stránku, alebo stránku spravuje viac ľudí. Alebo iba tak, aby to v administrácii vyzeralo profesionálne 🙂
Čiže máme vytvorený hlavný súbor. Teraz navštívime administráciu našej stránky a pozrime sa do Pluginov.
Náš prvý plugin sa zobrazuje medzi zoznamom pluginov. Skúste si ho aktivovať… teraz je náš prvý plugin hotový a aktivovaný.
Moment, a čo ďalej…?
Áno, náš plugin je už síce aktivovaný a plne funkčný, avšak jeho funkcionalita je v podstate žiadna.
Teraz si môžte do tohto pluginu pridávať vlastné funkcie a filtre, aby ste si prispôsobili WordPress pre svoje potreby.
Napríklad:
/** * Plugin Name: My site functions * Plugin URI: https://wp-admin.sk * Description: This plugin adds features / functions and enhancements to WordPress * Version: 1.0.0 * Requires PHP: 7.4 * Author: PeterB aka Viking * Author URI: https://wp-admin.sk * License: GPL2 */ /* Enter your code below */ /** * Change read more from [...] to ...viac * * @param $more * @return string */ function viking_excerpt_more( $more ) { // return new string for read more text return '...viac'; } add_filter( 'excerpt_more', 'viking_excerpt_more', 10, 1 );
V príklade, pomocou filtra zmeníme štandardné čítať viac [...]
na ...viac
.
Je dobrým zvykom pridať komentáre a hlavičku pre funkcie. Jednak si takto vytvoríte vizuálne bloky funkcií a tiež si do budúcna spravíte poznámku, čo ste chceli spraviť. Dnes vám to príde smiešne, avšak po pár mesiacoch fungovania, si budete ťažko spomínať, čo presne ste chceli spraviť. Robte si poznámky tak, aby ste im rozumeli. Spätná úprava, alebo zmena bude omnoho ľahšia.
Samozrejme pre takéto malé úpravy si nemusíte vytvárať stále nový plugin, ale iba doplníte pod už existujúce, nový kód.
Prečo nerobiť veci správne od začiatku?
Viem, je to zložitejšie, ako všetko vložiť do súboru functions.php
pre aktuálnu téme, ale nerobte si neporiadok v kóde hneď od začiatku. To čo vám príde dnes zložité, zajtra budete robiť automaticky.