
Кратките кодове (shortcodes) са един от върховете на WordPress. Те са мостът между разработчиците и създателите на сайтове, като позволяват на хората да поставят сложни елементи със съдържание почти навсякъде, където пожелаят. Създателите на разширения ги обожават, тъй като те дават по-голяма гъвкавост по отношение на това как и къде потребителите да показват своето съдържание.
Ако не знаете какво представляват кратките кодове и как изглеждат – те са онези архаични текстове, наподобяващи програмен код, затворени в квадратни скоби. Изглеждат приблизително така:
Този конкретен кратък код се нарича embed и е вграден по подразбиране в WordPress. Той вгражда видеоклипа от URL адреса във вашето съдържание. Просто копирайте и поставете горния код във вашия сайт, ако искате да го изпробвате.
Зад кулисите се случва следното: когато WordPress срещне кратък код във вашето съдържание, той се обработва и се преобразува в нещо друго. В горния пример, когато се открие кратък код
, WordPress взема URL адреса в него и го проверява спрямо списък от доставчици на съдържание, с които разполага. Когато открие съвпадение, извлича съответния код за вграждане чрез iframe и показва него на това място.
И така, какъв е проблемът тук? Звучи достатъчно лесно – просто въвеждате кратък текст със скоби и сте готови.
Тук се появява Shortcode API..
Изобилие от кратки кодове
Shortcode API предоставя възможност на разработчиците сами да създават кратки кодове. Благодарение на това те могат да добавят свои собствени такива в плъгините си.
Това е чудесно – сега само с кратък кодоподобен фрагмент както начинаещите, така и напредналите потребители могат да поставят практически всякакъв тип съдържание навсякъде, където поискат.
По подразбиране WordPress съдържа само няколко кратки кода. Лесно е да ги изпишете по памет, защото са съвсем малко. Но ако инсталирате няколко плъгина, броят им бързо нараства до десетки, а в някои случаи и до над сто. Всеки кратък код има свой собствен набор от атрибути и инструкции за използване. Всеки плъгин най-вероятно разполага с някакъв вид документация за това как работят всички негови кратки кодове и описва наличните параметри за всеки от тях. Но би било безумно да се опитвате да запомните всички кратки кодове и техните атрибути.
Проблемът е, че няма централизирано място, където да можете да видите всички налични кратки кодове на сайта си и как да ги използвате.
Някои се опитват да решат проблема
Някои плъгини се опитват да разрешат този проблем, като представят всички свои кратки кодове в леснодостъпно падащо меню. След това кликването върху някой от тях извежда кода, комплектован с всички възможни за него атрибути. Вече не е необходимо да го помните, което е страхотно.

Други стигат по-далеч и добавят изскачащ прозорец за настройки, който разполага с квадратчета за отметка и палитри за избор на цвят, за да попълнят атрибутите на краткия код.

Това решение работи до известна степен. Всеки плъгин обаче изброява само собствените си кратки кодове. Така че, ако всеки плъгин създаде своя собствена форма за избор на код, неизбежно ще попаднете в ситуации с множество бутони за избор на екран (това вече ми се е случвало).

С други думи, всеки плъгин действа независимо и прилага собствено решение за собствените си кратки кодове. Някои плъгини добавят нов бутон до бутона „Добавяне на файл“ (Add Media), а други – директно в TinyMCE.
Сега може би си мислите: „Защо просто да не съберем и кратките кодове на останалите плъгини и да ги включим в същото падащо меню / панел за избор?“. Е, точно това си помислих и аз. Но това е по-лесно да се каже, отколкото да се направи. Ще обясня защо след малко, но първо нека да видим как би изглеждало идеалното решение.
Идеалното решение
Перфектният план би бил създаването на плъгин, който събира всички налични кратки кодове на сайта ви, представя ви списъка и ви помага да попълните всички атрибути. И всеки път, когато инсталирате нов плъгин, всички новопоявили се кодове също да ви се представят автоматично.
Представете си централно място, където всички ваши кратки кодове са събрани за лесен достъп. Всеки кратък код да описва какво прави и към кой плъгин принадлежи. За всеки наличен атрибут пък представете си да има етикет, удобен начин за избор на стойност и описание. Да ви се показват падащи менюта, инструменти за избор на цвят, радио бутони, превключватели и какво ли още не.
Нещо подобно би направило живота ни като създатели на уебсайтове и съдържание много по-лесен. Без повече преглеждане на разнородна документация или ровене из различни части на административния панел само за да копирате генериран код за слайдър, който искате да използвате.
Уловката
За съжаление в момента е доста трудно да се направи нещо подобно. Няма сигурен начин да се разберат всички подробности за даден кратък код. Можете да получите списък с всички кратки кодове, но само с техните реални тагове/имена. Не можете да получите никакви допълнителни подробности за тях, като списък с атрибути, какво правят и типовете им – като например низ, цвят или число. Нито пък можете да получите нещо наподобяващо описание за всеки атрибут.
Бележка към разработчиците: да, има новодобавен трети аргумент за функцията shortcode_atts, но той не е задължителен. Така че, освен ако всеки разработчик на плъгини в света не го приложи, все още няма да имаме сигурен начин за определяне на всички атрибути на даден кратък код.
Shortcode API не предоставя никаква възможност за добавяне на описания на кодовете, определяне на типа на атрибутите или описания за тях. И освен ако самият WordPress не добави централизирано място за достъп до тях, съмнявам се такава възможност да бъде създадена.
Заключение
В момента задачата по организирането на кратките кодове е оставена на всеки отделен разработчик. Докато в рамките на WordPress не бъде разработен централизиран метод, очаквайте да продължавате да виждате множество бутони „Add Shortcode“ в административния панел. Дали подобно нещо трябва да бъде добавено в ядрото на WordPress, или не, е съвсем отделна и обширна дискусия.
Алтернатива
Съществуват плъгини за визуално изграждане на страници (page builders), които подхождат към това по различен начин. Вместо програмно да откриват кодовете, те разполагат с карти на кратките кодове (mappers), където потребителите могат ръчно да въведат всяка подробност. След като това бъде направено, кодът става достъпен в рамките на билдъра. Въпреки че това работи, тези настройки са налични само във вашия собствен сайт.
Ние тук в Page Builder Sandwich създаваме нещо, което се надяваме да разреши тази главоблъсканица с кратките кодове. Абонирайте се за нашия бюлетин по-долу, за да получавате известия за напредъка ни.