it-roy-ru.com

Детская тема против повторной темы переименована

Хорошо, я довольно часто вижу, как люди говорят о дочерних темах и причинах их использования вместо изменения существующей темы, но все они, похоже, сосредоточены вокруг идеи, что если родительская тема будет обновлена, все изменения будут потеряны. Когда я создавал сайты в прошлом, я всегда делал дубликаты начальной темы, менял название темы в style.css и работал там же. Мне кажется, что использование одной темы вместо дочерней темы сэкономит накладные расходы и позволит лучше контролировать код - например, удаляя ненужные функции, а не обходя их. Если я сталкиваюсь с проблемами, у меня всегда есть исходные файлы тем, на которые можно ссылаться, и если родительская тема обновляется, моя дочерняя тема все равно может сломаться, если имена функций и такие изменятся, поэтому я не рассматриваю это как реальную выгоду.

Мои поиски в интернете по этой теме не особо за исключением "предпочтений разработчика", что на самом деле не является причиной.

Есть ли реальные преимущества использования дочерней темы по сравнению с дублированием и переименованием темы?

6
SickHippie

Дочерние темы полезны для пользователей, которые в основном хотят внести изменения в стиль своей темы, но не хотят - или не знают, как - поддерживать основной код. Разработка тем для Grokking PHP/WordPress - это совсем не то, что для работы с CSS.

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

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

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

10
Chip Bennett

В дополнение к ответу Чип Беннетс

Некоторые разработчики, такие как я, имеют свои собственные фреймворки или используют такие, как Genesis, Hybrid и т.д. Эти фреймворки не содержат слишком много стилей, но имеют больше функциональных возможностей, таких как их собственные шаблоны и механизмы перехвата. Иногда также такие вещи, как базовые классы CPT или CT, библиотеки метабоксов, фреймворки css и т.д. Часто просто поддерживать весь код в отдельных репозиториях, связывать их в "тему" ​​и затем просто использовать эти части в своей дочерней теме.

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

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

6
kaiser

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

Прелесть дочерних тем заключается в том, что единственные различия между дочерней темой и родительской темой четко прослеживаются в самой дочерней теме. Хотите знать, что отличается между родительской и дочерней темой? Сама детская тема - это сумма этих различий. Нужно что-то менять по детской теме? Вам нужно только просмотреть несколько правил и функций, а не просматривать код всей темы.

5
heathenJesus