Nevyřčený problém shortcodů

Napsal(a)

v rubrice

The-Unspoken-Problem-of-Shortcodes

Shortcody představují jeden z vrcholů WordPressu. Shortcody tvoří most mezi vývojáři a tvůrci webů a umožňují lidem vkládat propracovaný obsah téměř kamkoli si přejí. Tvůrci pluginů shortcody milují, protože jim dávají větší flexibilitu v tom, jak a kde jejich uživatelé obsah zobrazují.

Pokud nevíte, co shortcody jsou a jak vypadají, jde o ony archaické texty připomínající kód uzavřené v hranatých závorkách. Vypadají nějak takto:

Tento konkrétní se nazývá embed shortcode a ve WordPressu je vestavěn ve výchozím nastavení. Tento konkrétní vkládá video z dané URL adresy přímo do vašeho obsahu. Pokud si ho chcete vyzkoušet, stačí výše uvedený shortcode zkopírovat a vložit na svůj web.

V zákulisí se děje to, že když WordPress ve vašem obsahu narazí na shortcode, zpracuje ho a převede na něco jiného. V našem případě výše, kdykoli je

shortcode detekován, WordPress vezme URL adresu v shortcodu a porovná ji s celou řadou poskytovatelů obsahu, které má k dispozici. Když nějakého najde, získá příslušný kód pro vložení přes iframe a zobrazí místo něj ten.

V čem je tedy problém? Zní to docela jednoduše – stačí zadat krátký text se závorkami a máte hotovo.

A zde přichází Shortcode API…

Záplava shortcodů

Shortcode API otevírá tvorbu shortcodů vývojářům. Díky tomu mohou vývojáři přidávat do svých pluginů vlastní shortcody.

To je skvělé – nyní mohou začátečníci i pokročilí uživatelé pomocí pouhého krátkého úryvku připomínajícího kód (odtud název „shortcode“) umístit prakticky jakýkoli typ obsahu kamkoli si přejí.

WordPress má ve výchozím nastavení jen hrstku shortcodů. Lze je snadno napsat zpaměti, protože jich je jen pár. Pokud ale nainstalujete několik pluginů, počet shortcodů rychle vyskočí na desítky a v některých případech i na více než stovku. Každý shortcode má vlastní sadu atributů a pokynů k použití. Každý plugin má s největší pravděpodobností nějakou dokumentaci, která vysvětluje, jak všechny jeho shortcody fungují, a uvádí všechny dostupné parametry pro každý z nich. Byli byste ale blázni, kdybyste se snažili zapamatovat si všechny shortcody a jejich atributy.

Problém je v tom, že neexistuje žádné centrální místo, kde byste našli všechny shortcody dostupné na vašem webu a návod, jak je používat.

Někteří se snaží problém vyřešit

Některé pluginy se snaží tento problém vyřešit tak, že všechny své vlastní shortcody nabízejí ve snadno dostupné rozbalovací nabídce. Kliknutím na některý z nich se pak vypíše shortcode včetně všech možných atributů. Už si ho nemusíte pamatovat, což je skvělá věc.

Screen-Shot-2016-06-22-at-11.27.09-AM

Některé jdou ještě dál a přidávají vyskakovací formulář s nastavením, který obsahuje zaškrtávací políčka a výběry barev pro vyplnění atributů shortcodu.

Screen-Shot-2016-06-22-at-11.28.54-AM

Toto řešení víceméně funguje. Každý plugin však uvádí pouze své vlastní shortcody. Pokud si tedy každý plugin vytvoří vlastní výběr shortcodů, nevyhnutelně nastanou situace, kdy budete mít na obrazovce několik různých výběrů najednou (to se mi už stalo).

Screen-Shot-2016-06-22-at-11.22.41-AM

Jinými slovy, každý plugin si dělá své vlastní věci a implementuje vlastní řešení pro své vlastní shortcody. Některé pluginy přidávají buď nové tlačítko vedle tlačítka „Mediální soubory“, nebo nové tlačítko přímo v editoru TinyMCE.

Možná si teď říkáte: „Proč neshromáždit i shortcody ostatních pluginů a nezahrnout je do rozbalovací nabídky / výběru shortcodů také?“ Přesně to mě napadlo. Snáze se to však řekne, než udělá. Za chvíli vysvětlím proč, ale nejprve se podívejme na to, jak by vypadalo ideální řešení.

Ideální řešení

Dokonalým plánem by bylo vytvořit plugin, který shromáždí všechny dostupné shortcody na vašem webu, nabídne vám jejich seznam a také vám pomůže vyplnit všechny atributy. A pokaždé, když nainstalujete nový plugin, zobrazí se vám i všechny tyto nově zavedené shortcody.

Představte si centrální místo, kde budou všechny vaše shortcody umístěny pro snadný přístup. U každého shortcodu by bylo popsáno, co dělá a ke kterému pluginu patří. A představte si, že u každého dostupného atributu by byl popisek, vhodný způsob výběru hodnoty a popis. Zobrazovaly by se vám rozbalovací nabídky, výběry barev, přepínače, přepínací tlačítka a podobně.

Něco takového by nám jako tvůrcům webů a obsahu usnadnilo život. Už žádné procházení různých dokumentací nebo různých částí administrace jen proto, abyste zkopírovali vygenerovaný shortcode pro slider, který chcete použít.

Háček

Bohužel je v současnosti docela obtížné něco takového udělat. Neexistuje žádný spolehlivý způsob, jak zjistit veškeré podrobnosti o shortcodu. Můžete získat seznam všech shortcodů, ale pouze jejich skutečné značky/názvy; nezískáte o nich žádné další podrobnosti, jako je seznam atributů, co dělají a jaké jsou jejich typy – například řetězec, barva nebo číslo. Stejně tak nelze získat ani náznak popisu pro jednotlivé atributy.

Poznámka pro vývojáře: ano, pro funkci shortcode_atts byl nově přidán třetí argument, ale není povinný. Pokud jej tedy neimplementuje každý vývojář pluginů na světě, stále nebudeme mít spolehlivý způsob, jak určit všechny atributy daného shortcodu.

Shortcode API neposkytuje žádné možnosti pro přidávání popisů shortcodů, typování atributů ani popisů atributů. A pokud samotný WordPress nepřidá centrální prostor pro přístup k shortcodům, pochybuji, že taková možnost vůbec vznikne.

Závěr

V současné době je úkol organizace shortcodů ponechán na každém vývojáři. Dokud nebude ve WordPressu vyvinuta centrální metoda, můžete očekávat, že v administraci budete i nadále vídat více tlačítek „Přidat shortcode“. Zda by mělo být něco takového přidáno přímo do jádra WordPressu, je samo o sobě tématem k další velké diskuzi.

Alternativa

Existují pluginy pro tvorbu stránek (page buildery), které k tomu přistupují jinak. Místo programového zjišťování shortcodů mají mapovače shortcodů, kde mohou uživatelé ručně zadat každý detail shortcodu. Jakmile je hotovo, shortcode je pak k dispozici v rámci page builderu. Ačkoli  to funguje, je to dostupné pouze na vašem vlastním webu.

My v Page Builder Sandwich vytváříme něco, co snad tuto hádanku se shortcody vyřeší. Přihlaste se níže k odběru našeho newsletteru, abyste byli informováni o našem pokroku.