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

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

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

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

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

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

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

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

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

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

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

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

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

Да здравствуют данные

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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