A shortcode-ok kimondatlan problémája

The-Unspoken-Problem-of-Shortcodes

A shortcode-ok a WordPress egyik legnagyszerűbb vívmányai. A shortcode-ok hidat képeznek a fejlesztők és a webhelykészítők között, lehetővé téve, hogy a felhasználók szinte bárhová összetett tartalmakat helyezzenek el, ahová csak szeretnék. A bővítmények készítői azért szeretik a shortcode-okat, mert nagyobb rugalmasságot biztosítanak abban, hogyan és hol jelenítsék meg a felhasználók a tartalmaikat.

Ha nem tudja, mik azok a shortcode-ok, és hogyan néznek ki, ezek azok az archaikus, kódszerű szövegek, amelyek szögletes zárójelek közé vannak zárva. Valahogy így néznek ki:

Ezt a konkrét kódot beágyazási (embed) shortcode-nak hívják, és alapértelmezés szerint be van építve a WordPressbe. Ez a hivatkozáson szereplő videót ágyazza be a tartalomba. Egyszerűen másolja be a fenti shortcode-ot a webhelyére, ha ki szeretné próbálni.

A háttérben az történik, hogy amikor a WordPress egy shortcode-dal találkozik a tartalomban, feldolgozza és valami mássá alakítja azt. A fenti esetünkben, valahányszor egy

shortcode-ot észlel, a WordPress fogja a shortcode-ban található URL-t, és összeveti a rendelkezésére álló tartalomszolgáltatók listájával. Amikor talál egyet, lekéri a megfelelő iframe beágyazási kódot, és azt jeleníti meg helyette.

Mi tehát itt a probléma? Elég egyszerűnek tűnik: csak beír egy rövid szöveget szögletes zárójelekkel, és kész is.

És ekkor jön a Shortcode API…

Shortcode-ok tömkelege

A Shortcode API lehetővé teszi a shortcode-ok létrehozását a fejlesztők számára. Ennek köszönhetően a fejlesztők saját shortcode-okat adhatnak hozzá a bővítményeikhez.

Ez nagyszerű, hiszen egyetlen rövid, kódszerű részlettel (innen a „shortcode” elnevezés) a kezdő és a haladó felhasználók egyaránt gyakorlatilag bármilyen típusú tartalmat elhelyezhetnek bárhol, ahol csak szeretnék.

A WordPress alapértelmezés szerint csak egy maroknyi shortcode-ot tartalmaz. Könnyű őket fejből beírni, mert csak néhány van belőlük. Ha azonban telepít néhány bővítményt, a shortcode-ok száma gyorsan tucatnyira vagy még többre, bizonyos esetekben akár száznál is többre nőhet. Minden egyes shortcode saját attribútumkészlettel és használati útmutatóval rendelkezik. A legtöbb bővítmény valószínűleg rendelkezik valamiféle dokumentációval arról, hogyan működnek a shortcode-jai, és felsorolja az egyes elérhető paramétereket. De megőrülne, ha megpróbálná megjegyezni az összes shortcode-ot és azok attribútumait.

A probléma az, hogy nincs olyan központi felület, ahol megtalálhatná a webhelyén elérhető összes shortcode-ot és azok használatának módját.

Egyesek megpróbálják megoldani a problémát

Néhány bővítmény úgy próbálja megoldani ezt a problémát, hogy az összes saját shortcode-ját egy könnyen elérhető legördülő menüben jeleníti meg. Egyikre kattintva a rendszer kiírja a shortcode-ot, kiegészítve az összes lehetséges attribútumával. Nem kell többé megjegyezni őket, ami nagyszerű dolog.

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

Egyesek még tovább mennek, és egy olyan beállítási felugró űrlapot adnak hozzá, amely jelölőnégyzeteket és színválasztókat tartalmaz a shortcode attribútumainak kitöltéséhez.

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

Ez a megoldás többé-kevésbé működik. Azonban minden bővítmény csak a saját shortcode-jait sorolja fel. Így ha minden bővítmény létrehozza a saját shortcode-választóját, óhatatlanul előfordul, hogy egyszerre több shortcode-választó jelenik meg a képernyőn (velem már megesett ilyen).

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

Más szóval, minden bővítmény a saját útját járja, és saját megoldást valósít meg a saját shortcode-jaihoz. Egyes bővítmények új gombot adnak hozzá a „Média hozzáadása” gomb mellé, vagy egy újat a TinyMCE szerkesztőn belül.

Így most talán azt gondolja: „Miért nem gyűjtik össze a többi bővítmény shortcode-jait is, és miért nem szerepeltetik azokat is a legördülő menüben / shortcode-választóban?” Nos, pontosan erre gondoltam én is. De ezt könnyebb mondani, mint megtenni. Mindjárt elmagyarázom, miért, de először nézzük meg, hogyan nézne ki egy ideális megoldás.

Az ideális megoldás

A tökéletes terv az lenne, ha létrehoznánk egy olyan bővítményt, amely összegyűjti az oldalon elérhető összes shortcode-ot, majd megjeleníti a listát, és segít kitölteni az összes attribútumot is. És valahányszor új bővítményt telepít, az összes újonnan bevezetett shortcode szintén megjelenne Önnek.

Képzeljen el egy központi helyet, ahol az összes shortcode megtalálható a könnyű hozzáférés érdekében. Minden shortcode leírná, hogy mit csinál, és melyik bővítményhez tartozik. Aztán minden egyes elérhető attribútumhoz tartozna egy címke, egy megfelelő mód az érték kiválasztására és egy leírás. Megjelennének legördülő menük, színválasztók, választógombok, kapcsolók és minden egyéb.

Egy ilyen dolog megkönnyítené az életünket weboldal- és tartalomkészítőként. Nem kellene többé különböző dokumentációkat vagy az adminisztrációs felület különböző részeit böngészni csak azért, hogy kimásoljunk egy generált shortcode-ot egy használni kívánt sliderhez.

A bökkenő

Sajnos jelenleg elég nehéz ilyesmit megvalósítani. Nincs biztos módszer arra, hogy megtudjuk egy shortcode összes részletét. Lekérhető ugyan az összes shortcode listája, de csak a tényleges címkéik/neveik; semmilyen további adatot nem lehet kapni róluk, mint például az attribútumok listáját, mit csinálnak, vagy milyen típusúak – például szöveg, szín vagy szám. Ahogyan az egyes attribútumokhoz sem érhető el semmiféle leírás.

Megjegyzés a fejlesztőknek: igen, van egy újonnan hozzáadott harmadik argumentum a shortcode_atts függvényhez, de ez nem kötelező argumentum. Így hacsak a világ minden bővítményfejlesztője nem implementálja, továbbra sem lesz biztos módunk egy shortcode összes attribútumának meghatározására.

A Shortcode API nem biztosít semmilyen lehetőséget shortcode-leírások hozzáadására, típusos attribútumok meghatározására vagy attribútumleírásokra. És hacsak maga a WordPress nem hoz létre egy központi felületet a shortcode-ok eléréséhez, kétlem, hogy ez a funkció valaha is megszületik.

Összegzés

Jelenleg a shortcode-ok rendszerezésének feladata az egyes fejlesztőkre hárul. Hacsak nem fejlesztenek ki egy központi módszert a WordPressen belül, a vezérlőpulton továbbra is több „Shortcode hozzáadása” gombbal fogunk találkozni. Hogy egy ilyesmit be kellene-e építeni a WordPress magjába vagy sem, az önmagában is egy újabb hatalmas vita tárgya.

Egy alternatíva

Vannak olyan oldalépítő bővítmények, amelyek ezt másképp kezelik. A shortcode-ok programozott észlelése helyett rendelkeznek egy shortcode-feltérképezővel (shortcode mapper), ahol a felhasználók manuálisan adhatják meg a shortcode minden részletét. Ha ez kész, elérhetővé válik az oldalépítőn belül. Bár  ez működik, ezek csak a saját webhelyén érhetők el.

Mi itt a Page Builder Sandwichnél olyan megoldáson dolgozunk, amely remélhetőleg megoldja ezt a shortcode-rejtvényt. Iratkozzon fel hírlevelünkre alább, hogy értesüljön az előrehaladásunkról.