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

Обсуждение пользовательских типов постов WordPress: Functions.php или Плагины?

Как многие из вас знают, на прошлой неделе Сайед Балхи участвовала в WordCamp Raleigh 2012. Во время мероприятия один из ее твитов вызвал бурную дискуссию. В этой статье наш основатель Сайед Балхи обсудит, принадлежат ли пользовательские типы записей WordPress к файлу functions.php или плагинам. Ниже твит, который начал эту дискуссию:

Не добавляйте пользовательские типы записей в functions.php -> вы должны ВСЕГДА использовать специальный плагин для сайта: wpbeg.in/vcXr7j #wcraleigh

– WordPress для начинающих (@wpbeginner) 4 ноября 2012 г.

После твита на сцене появилось много уважаемых людей из сообщества WordPress. Вы можете увидеть весь разговор здесь. Кертис Макхейл пошел дальше и подробно остановился на этой теме в своем новом сообщении в блоге.

Разговор Twitter принес некоторые замечательные моменты.

Резюме аргументов

Аргумент плагина: У пользователя всегда будут данные, даже если тема изменится. Это может выглядеть не так красиво, но оно останется там.

Аргумент Functions.php: Данные без дизайна не будут иметь значения. Это еще больше запутает пользователей.

С какой стороной вы согласны больше всего? У обеих сторон явно есть свои проблемы, но что является меньшим из двух зол?

Поэтому мы считаем, что пользовательские типы сообщений должны НАВСЕГДА жить в конкретный плагин сайта или плагин полностью.

Live данные

Пользовательские типы сообщений приведены. В большинстве случаев ваши данные выживут в соответствии с текущим дизайном. После нескольких смен тем мы ясно понимаем это утверждение. Сообщения, страницы, ссылки, вложения и обзоры – это все виды сообщений, включенных в WordPress. Кроме того, у нас есть виды публикаций, такие как книги, отзывы, предложения и т. Д. Теперь, вы можете себе представить, если мы сменим тему и исчезнем? Мы, конечно, не хотим, чтобы это произошло.

Наличие разработчиков в нашей команде не должно иметь большого значения. Учитывая, что все наши темы персонализированы нашей командой, какая разница? Секрет в двух словах: время и централизация. Пока у нас есть все необходимые данные, все, что нам нужно сделать в будущем, это изменить стиль. Нам не придется каждый раз беспокоиться о копировании и вставке функций из одного файла в другой. Что делать, если вы хотите повторить функциональность? Просто возьмите плагин и поместите его на свой новый сайт. Измените стиль, и все готово.

Правила и стандарты

Когда вы используете слово ВСЕГДА, как мы используем его в нашем твите, это может означать правила и стандарты. Правила и положения сделаны для большинства. Всегда будут особые сценарии, когда правила сгибаются, а шаблоны нарушены, но это не значит, что мы должны полностью избавиться от стандартов.

Существует множество общих типов записей, для которых в основном требуется один и тот же набор дополнительных метаполей. Вот некоторые примеры: цитаты, книги, рецепты, отзывы, портфолио и т. Д.

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

Фотограф – Пользователь настроил WordPress, который имеет функцию блога (стандарт CPT «публикация»). Вы хотите добавить портфолио своей работы (требуется портфолио CPT). Вы хотите показать отзывы клиентов (требуется отзыв CPT). Вся эта информация, безусловно, будет жить вне дизайна темы. Через год пользователь хочет изменить внешний вид сайта и обновить его. Найдите новую тему, которая имеет все похожие функции. В тот момент, когда тема меняется, БУМ. Все предыдущие введенные вами данные исчезли. Существует меню под названием «Портфолио» и меню «Отзывы», однако данных там нет. Пользователь думает: «Черт, я потерял весь мой контент». Создать новые вопросы поддержки на форуме. Отправляйте электронные письма на такие сайты, как WPBeginner и т. Д. Если они не получают хорошего ответа, они должны снова ввести все данные. Это ужасный пользовательский опыт.

Итак, как мы решаем эту проблему?

Возможное решение?

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

Как Джастин спрашивает в своем посте, какие стандартные поля должны быть включены в плагин портфолио (ссылаясь на целевой мета). Этот тип разговора должен происходить между разработчиками, которые создают аналогичные функции в своих темах. Зачем копировать и вставлять одно и то же снова и снова из одной темы в другую, если это можно сделать с помощью плагина? Как только он станет стандартом, другие авторы тем начнут адаптироваться к нему.

Например, мы видим увеличение поддержки стилей для Gravity Forms в каркасах тем WordPress, таких как Genesis и другие. Зачем? Потому что они понимают, что используют их пользователи.

Есть несколько надежных тем WordPress, которые загружены с функциями, которые, по нашему мнению, должны быть плагинами. Темы доски задач, темы отслеживания проблем, тема объявлений, темы недвижимости и т. Д. Все они должны работать с базовым плагином. Это уже происходит с WooCommerce. WooThemes выпустила различные темы со встроенной поддержкой стилей для плагина. Другие тематические компании также пообещали запустить темы электронной коммерции на основе WooCommerce. Вы можете переходить с одной темы на другую и сохранять все свои продукты такими, какие они есть. Как будто предмет изменился, но все стало на свои места. Это опыт смены темы, за которую мы должны бороться.

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

Взгляните на плагин ReciPress. Создайте пользовательский метабокс с полями рецепта и прикрепите его к сообщениям. Тем не менее, вы можете прикрепить его с пользовательскими типами сообщений. Любой, кто использует этот плагин, может менять темы без особых проблем.

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

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

Что вы думаете об этой теме? Где должен находиться пользовательский код типа записи? В файле functions.php или в плагинах?