Как создать сайт или блог в 2020 году - бесплатное и простое руководство по созданию сайта

Шорткоды никогда не должны быть включены в темы. Период.

ThemeForest недавно обновил свои требования к отправке тем WordPress, чтобы они стали более строгими и более соответствующими рекомендациям по разработке тем WordPress.

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

В основном более или менее политика обзора тем WordPress.org, более или менее.

В общем, это шаг в правильном направлении и движется к Продвигайте лучшие практики на одном из самых популярных тематических рынков WordPress в сети. Есть только одна проблема …

Допустимые короткие коды

Тем не менее, одна вещь, которая особенно привлекла мое внимание, это то, как некоторые «допустимые» функции шорткода были разрешены (то есть, включая их непосредственно через файл functions.php темы). Те, которые перечислены как «допустимые», включают следующее:

  • кнопки
  • таблицы цен
  • контейнеры с изображениями
  • чехлы
  • списки

Недопустимые шорткоды включают в себя: карты, аккордеоны и переключатели, содержимое в полях, столбцах, контактные формы, диаграммы.

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

Я действительно не могу сказать это лучше, чем у Джастина Тэдлока. Одна из наиболее заметных проблем заключается в том, что когда пользователь меняет тему, шорткоды больше не будут сканироваться,

Предположим, что тема «Super Awesome» имеет функцию шорткода, которая показывает большую зеленую кнопку со ссылкой, когда вы набираете что-то вроде (button url = "http://example.com") Big Green Button (/ button).

Большая зеленая кнопка

Когда вы переключаетесь на другую тему (давайте посмотрим правде в глаза, люди легко устают от тем), больше нет большой зеленой кнопки. Вместо этого, вы видите шорткод не проанализированный в посте как если бы это был любой другой контент, например:

(button url = ”http://example.com”) Большая зеленая кнопка (/ кнопка)

Это выглядит некрасиво, запутанно и неуместно, и это боль для пользователя, чтобы вернуться и удалить / заменить все из них.

Другая проблема с шорткодами в темах

Что-то, о чем Тэдлок упомянул в своей статье «Столкновение с безумием короткого кода», заключается в том, что многие короткие коды настолько просты и похожи на HTML, что, возможно, было бы даже лучше, если бы пользователь мог написать немного (* gasp *) фактический HTML-код,

Тот же короткий код (url button = "http://example.com") Текст кнопки (/ button) в моем примере выше может быть легко переписывается вроде как

Текст кнопки здесь

Хотя в новой теме может не быть CSS-кода в стиле селектора .button, по крайней мере, появится обычная ссылка. Что является большим улучшением на неанализированный шорткод (кнопка), который появляется в содержании публикации.

Кроме того, я думаю, что все пользователи WordPress должен иметь хотя бы базовое понимание кода HTML, Их обучение, даже в небольших фрагментах (например, как создать ссылку), поможет. Если они могут понимать короткий код, им не понадобится намного больше для понимания основного HTML.

Но пользователям все равно!

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

Проблема в том, что некоторые пользователи неизбежно хотят сменить тему когда-нибудь. Некоторые пользователи захотят установить плагин, который может конфликтовать с другим плохо продуманным кодом по теме.

Таким образом, они, вероятно, будут заботиться, и они, вероятно, задаются вопросом, если предмет, который они купили с сотнями встроенных шорткодов и других лишние функции действительно окупились,

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

Положите это в оснастке. Действительно простой плагин. Вам не нужна отдельная панель настроек. Просто скопируйте и вставьте буквально все, что вы собираетесь включить, через файл functions.php вашей темы и вместо этого поместите его в плагин.

Он может быть даже включен с чем-то вроде активации плагинов TGM, чтобы сделать его необходимым для активации темы. Или нет. тема все еще тема без коротких кодов,

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

Возможно, плагин также может ставить в очередь стили для шорткодов. Таким образом, большие зеленые кнопки, которые вы включили в короткий код (кнопка), останутся большими зелеными кнопками, независимо от используемой темы.

Почему ThemeForest разрешил «допустимые» шорткоды?

Трудно сказать, что именно послужило причиной этого решения. Джап Томсон, евангелист WordPress из Envato (материнской компании ThemeForest), сказал об этом в комментарии на WPMU.org:

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

Очевидно, он это понимает. Так что это для меня загадка, почему будут какие-то «допустимые» шорткоды совсем нет И да, я понимаю, что вы использовали слово «сложный» в приведенной выше цитате, и допустимые сокращенные коды, как правило, довольно просты (главы, списки и т. Д.).

Как просто шорткод может быть, проблемы, которые я описал выше, будут продолжать существовать, ThemeForest показал, что реагирует на отзывы сообщества, поэтому это правило может измениться в будущем.

заключение

Я понимаю этот пост кажется немного суетливымИ эти новые рекомендации, безусловно, большой шаг в правильном направлении. Но на самом деле нет причин для того, чтобы шорткод был разрешен в теме, простой или нет.

Можете ли вы вспомнить ситуацию, когда публично выпущенная тема должна включать функцию шорткода через свой собственный файл functions.php?

– Тематическая лаборатория (@themelab) 9 июля 2013 г.

Спойлер оповещения: Я не получил никакого ответа на этот твит с реальным примером шорткода, который абсолютно необходимо включить в публично опубликованную тему.

Это потому что это просто не легко использовать чтобы пользователь мог вернуться и заменить сотни коротких кодов кнопок после переключения на тему, которая не имеет такой же поддержки шорткодов.