Шорт-коди ніколи не слід включати в теми. Період.

ТемаForest останнім часом оновив їх Вимоги до подання теми WordPress бути більш суворим та більш детальним з найкращими практиками розробки теми WordPress.


Вказівки вимагають використання декількох основних функцій WordPress, стандартних гачків теми та заборонити функції PHP (наприклад, base64 та fopen). ніколи б не було місця в темі WordPress почати з.

В основному, це дуже багато WordPress.org Політика огляду теми, дати або взяти кілька речей.

Загалом це крок у правильному напрямку та рухається до просувати кращі практики на одному з найпопулярніших тематичних ринків WordPress в мережі. Є лише одна проблема …

Допустимі короткі коди

Однак одне, що особливо зачепило мене, – це те, як була дозволена певна функція “допустимого” короткого коду (тобто, безпосередньо включивши їх через файл function.php теми). До перелічених як “допустимих” включено такі:

  • кнопки
  • таблиці цін
  • контейнери для зображень
  • капельки
  • списки

До неприпустимих коротких кодів відносяться: карти, гармошки та перемикачі, вміст у коробці, стовпець, контактні форми, схеми.

Проблема зі штрихкодами в темах

Я не можу сказати, що краще Джастін Тадлок вже є. Одне з найбільш помітних питань – це те, що, коли користувач змінює теми, шорт-коди більше не будуть розбиратися.

Скажімо, тема “Super Awesome” мала функцію короткого коду, яка виводила б велику зелену кнопку із посиланням, коли ви вводили щось на кшталт

Велика зелена кнопка [/ кнопка].

Велика зелена кнопка

Коли ви переходите на іншу тему (давайте зіткнемось з цим, люди легко набридають теми), більше немає зеленої кнопки. Натомість, ви бачите нерозчленований короткий код у публікації ніби це будь-який інший вміст, як-от так:

[кнопка url = ”http://example.com”] Велика зелена кнопка [/ кнопка]

Це виглядає некрасиво, заплутано і непомітно, і це біль для користувача, щоб повернутися та видалити / замінити усі.

Інша проблема із шорт-кодами в темах

Щось, через що Тадлок перейшов у своїй статті “Справа з божевіллям із шорткодовим кодом”, це те, що багато шорт-кодів є настільки простими та схожими на HTML, що, можливо, навіть найкраще доручити користувачам трохи виписати (* задихатися *) реальний HTML-код.

Той самий [кнопка url ="http://example.com"] Текст кнопки [/ button] у моєму прикладі може бути коротким кодом легко переписати як щось на зразок:

Текст кнопки тут

Хоча може не бути CSS-коду, що стилізує селектор .button у новій темі, принаймні нормальне посилання відображатиметься. Що є великим поліпшенням над нерозбірливим [кнопкою] коротким кодом, який відображається у вмісті публікації.

Крім того, я вірю кожному користувачеві WordPress повинен мати хоча б якесь базове розуміння HTML-коду. Навчаючи їх, навіть невеликими шматочками (як, як побудувати посилання), допоможе. Якщо вони можуть зрозуміти короткий код, знадобиться набагато більше, щоб зрозуміти базовий HTML.

Але Користувачам все одно!

Поширений аргумент, який я бачу, захищаючи всілякі погані практики, коли мова йде про розробку тем, – це те, що користувачам просто все одно. Я маю на увазі, можливо, вони ніколи не хочуть оновлювати свою тему, в такому випадку це питання короткого коду буде суперечливим.

Проблема в тому, що деякі користувачі неминуче захочеться переключити теми якийсь день. Деякі користувачі захочуть встановити плагін, який може конфліктувати з іншим неякісно продуманим кодом у темі.

Тоді вони, мабуть, потурбуються, і, напевно, зададуться питанням, чи купували вони тему зі 100-ма вбудованими шорт-кодами та ін зайві функції справді того варті.

Правильний спосіб включення коротких кодів

Помістіть його у плагін. Справді простий плагін. Для цього не потрібна окрема панель параметрів. Просто буквально скопіюйте та вставте все, що ви збираєтесь включити через файл function.php теми своєї теми та помістіть його у плагін замість цього.

Це навіть може бути пов’язане з чимось подібним Активація плагіна TGM щоб зробити це необхідним для активації теми. Чи ні. А тема як і раніше тема без шорткодів.

Таким чином, якщо користувач змінює теми, то шорткоди все ще працюватимуть, тому що ця функціональність обробляється плагіном, який все ще активний.

Можливо, плагін теж міг стилі enqueue і для шорткодів. Таким чином, великі зелені кнопки, які ви включили до короткого коду

, як і раніше, будуть великими зеленими кнопками, незалежно від використовуваної теми.

Чому ThemeForest дозволив “допустимі” шорт-коди?

Важко сказати, якими саме були мотиви цього рішення. Джаф Томсон, євангеліст WordPress з компанії Envato (материнська компанія ThemeForest), мав це сказати про це у коментарі на WPMU.org:

Складний функціонал короткого коду дійсно повинен містити плагін, а не тему. Це також має сенс, якщо ви вважаєте, що більшість наших авторів мають кілька тем.

Очевидно, він це отримує. Отже, це для мене загадка, чому не було б “допустимих” шорт-кодів зовсім. І так, я розумію, що він використав слово “складний” у цитаті вище, і допустимі шорт-коди, як правило, досить прості (дропсети, списки тощо).

Простий, як короткий код, може бути проблеми, які я окреслив вище, все ще будуть існувати. Показано, що ThemeForest реагує на відгуки спільноти, тому можливо, це правило буде змінено в майбутньому.

Висновок

Я усвідомлюю цю посаду здається трохи прискіпливим, і ці нові вказівки, безумовно, є величезним кроком у правильному напрямку. Але насправді немає причини, щоб будь-який короткий код був дозволений у темі, простою чи ні.

Чи можете ви придумати ситуацію, коли публічно випущена тема абсолютно повинна включати функцію короткого коду через власні функції.php?

– Тематична лабораторія (@themelab) 9 липня 2013 року

Спойлер попередження: Не отримали відповідей на цей твіт із реальним прикладом короткого коду, який абсолютно потребує включення до публічно випущеної теми.

Це тому, що це просто не зручно для користувачів щоб користувач повернувся назад та замінив сотні коротких кодів кнопок після переходу на тему, яка не має такої ж підтримки короткого коду..

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