Motyw startowy czy motyw nadrzędny? Plusy i minusy

10

Tworzę motyw, który posłuży jako przykład dla innych stron internetowych dla firmy, w której pracuję. W innym projekcie wykorzystaliśmy Hybrid Parent Theme i było naprawdę łatwe do zbudowania, ale NAPRAWDĘ trudne do utrzymania strony.

Wolę podejście Motyw początkowy, w którym inny programista kopiuje motyw i tworzy z niego. Parent-> Child daje zbyt dużą swobodę, aby programista bałaganił kod. Na przykład nie wiedziałem, czy coś zostało wywołane na dziecku czy rodzicu.

Chciałbym usłyszeć od ciebie:

  • Kiedy motyw nadrzędny jest lepszy?
  • Kiedy motyw startowy jest lepszy?
  • Jakie są zalety i wady każdego z nich?

Dzięki.

romulodl
źródło
2
Głosowano za mało konstruktywne : „Oczekujemy, że odpowiedzi będą poparte faktami, referencjami lub konkretną wiedzą specjalistyczną, ale to pytanie prawdopodobnie zachęci do debaty, argumentów, ankiet lub rozszerzonej dyskusji”.
Chip Bennett,
4
Pytanie dotyczy faktów. Być może część opinii powinna zostać usunięta… Zobacz też Dobry subiektywny, zły subiektywny .
fuxia
Mógłbym po prostu edytować moje pierwsze pytanie lub je usunąć
romulodl
2
@romulodl - po prostu edytuj pytanie i usuń „opinię” - nie trzeba chyba usuwać
anu

Odpowiedzi:

11

Całkowicie się zgadzam z Rarstem . Chcę tylko dodać kilka drobiazgów.

Uwaga: Rozróżniam motyw i strukturę nadrzędną. W mojej odpowiedzi rozważam motyw nadrzędny, taki jak TwentyEleven, gdzie jest on tworzony głównie dla konkretnej strony internetowej i mniej haczyków niż ramy.

Motyw początkowy:

Plusy

  • Łatwy do dostosowania na poziomie HTML. Mam na myśli coś takiego jak otwarta <div>, niestandardowa klasa CSS dla określonego elementu. Jest to dobry sposób na stworzenie bardzo minimalnego motywu dla osobistego bloga, w którym nie potrzebujesz wielu rzeczy, które zapewnia motyw nadrzędny (lub przynajmniej jeśli używasz nadrzędnego motywu / frameworka, musisz zaczepić się, aby je usunąć). Możesz także wywołać echo specjalnej części HTML, takiej jak ta, iframektóra odnosi się do innej witryny lub po prostu „Cześć tekst”, znacznie łatwiej niż przy użyciu motywu nadrzędnego.
  • Nie trzeba powielać pliku szablonu z motywu nadrzędnego, aby zmienić małe rzeczy.
  • Nie musisz uczyć się czegoś nowego, jak mapa przechwytująca, niestandardowa składnia, niestandardowe funkcje itp. Takie rzeczy lubią programiści, ale nie wszyscy użytkownicy.

Cons

  • Ponieważ jest to na początek , musisz zrobić wiele rzeczy, aby zrobić swój motyw: CSS, niestandardowe szablony itp. Możesz tego nie chcieć, jeśli jesteś zbyt leniwy!

Temat nadrzędny:

Plusy

  • Ma ukończony projekt, który można łatwo modyfikować, zmieniając małe linie, na style.cssprzykład zmieniając kolor, rozmiar czcionki itp.
  • Jest wypełnionym motywem, co oznacza, że ​​możesz go od razu, nie martwiąc się o coś takiego jak szablon komentarza, szablon pojedynczej strony itp.
  • Ktoś to dla ciebie zbudował !

Cons

  • Motyw nadrzędny powinien być uważany za dobry, jeśli w większości odpowiada twoim wymaganiom, dzięki czemu możesz go modyfikować w jak najmniejszym stopniu. W przeciwnym razie to koszmar
  • Możliwość dostosowania nie jest zbyt wysoka. Nie mam na myśli systemu haczyków, który można zobaczyć tutaj w ramach (patrz ramy poniżej). Jeśli chcesz go silnie dostosować, musisz przepisać większość plików szablonów - co oznacza, że ​​odtwarzasz kompozycję, a to nie jest cel korzystania z kompozycji nadrzędnej.

Struktura:

Plusy

  • Wszystko jest dostępne: framework jest często tworzony jako rozwiązanie typu „wszystko w jednym”, dzięki czemu ma doskonałą zdolność do tworzenia wszelkiego rodzaju stron internetowych. Potrzebujesz niestandardowego logo? narzędzie do wybierania kolorów? przeciągnij i upuść? układ motywu? ... masz je już w ręku.
  • Twórz witryny szybciej, jeśli ją znasz
  • Ma kompletny system zaczepów, który pozwala użytkownikom zaczepiać w wielu miejscach, aby zmienić wiele rzeczy oferowanych przez framework
  • Wysoki poziom personalizacji: nie tylko w systemie haków, ale także w wielu frameworkach, takich jak Catalyst, Headway, możesz dostosować prawie wszystkie elementy bezpośrednio w adminie bez dotykania CSS lub hooka.

Cons

  • Użytkownik musi nauczyć się frameworka (systemu zaczepów, zapoznać się z jego funkcjami, ustawieniami, a nawet nową terminologią), aby móc z niego efektywnie korzystać. Uważam to za największą wadę frameworka, ponieważ WP ma już wiele rzeczy do nauczenia się, a nie wszyscy użytkownicy chcą nauczyć się nowej rzeczy, aby lepiej korzystać z WP. Takie rzeczy lubią programiści, ale nie wszyscy użytkownicy. Użytkownicy to ludzie, którzy po prostu używają , nie uczą się i nie dostosowują.
  • Kod redundantny: niektóre części frameworków pokrywają się z funkcjami WP, co powoduje duplikację. Przykład może być genesis_meta()(nie potrzebny, ponieważ mamy wp_head).
  • Wydajność: ponieważ frameworki mają wszystko, co potrzebne => musi załadować wszystkie potrzebne pliki dla admin / frontend, których w ogóle możesz nie używać. W tym momencie wolę sposób, w jaki Hybrid Core ładuje swoje pliki (przy użyciurequire_if_theme_supports funkcji)
  • Domyślny wygląd jest często minimalny i zły. Musimy dużo pracować, aby projekt został wykonany. Proces jest podobny, jeśli używasz motywu startowego, ale używasz haczyków zamiast szablonów niestandardowych, takich jak motywy startowe.
  • Framework ma własną filozofię, która prowadzi do różnych sposobów budowania frameworków => prowadzi do wielu frameworków => nie wiemy, który z nich jest dla nas najlepszy (szczególnie gdy są one premium). To nie jest zbyt dobre, ponieważ, jak powiedziałem powyżej, framework jest dobry dla programistów, a programiści muszą zagłębić się w kod, aby zobaczyć, jak jest dobry! Jeśli rama jest premium, drzwi wyglądają!

Ostatnia rzecz: wszystkie motywy początkowe oraz motywy i ramy nadrzędne mogą być używane w dowolnej witrynie, jeśli łatwo jest je dostosować w celu uzyskania końcowego efektu. Nie ma jednego rozwiązania dla wszystkich sytuacji. Musimy wybrać, który może nam najbardziej pomóc, może tym razem motyw startowy jest dobry, ale innym razem - ramy. Nawiasem mówiąc, praca z nimi wszystkimi może dać nam wiele doświadczenia, które pomogą nam w wielu sytuacjach, nie tylko podczas tworzenia motywów!

Anh Tran
źródło
Naprawdę pełna odpowiedź! Dzięki! To z pewnością rozwiąże wątpliwości każdego, kto być może w przyszłości ma to samo pytanie!
romulodl
9

Bilans przepływu pracy motywu jest kombinacją kilku czynników:

  • ilość kodu, indywidualna dla stron
  • ilość kodu dzielona między stronami
  • uwzględniające zmiany upstream

Każdy z nich może być ważny i każdy z nich może być nieistotny.

Model motywu nadrzędnego spełnia je wszystkie dość dobrze, ale niezbyt dobrze. Otrzymujesz wyraźne oddzielenie kodu współdzielonego i indywidualnego, a także proste aktualizacje w górę (jeśli używasz motywu nadrzędnego innej firmy). Zaczyna się rozpadać, gdy jakiekolwiek wymagania stają się większe niż zwykle - dużo indywidualnego kodu lub dużo wspólnego kodu, którego nie można łatwo mieszać z motywem nadrzędnym innej firmy.

Z drugiej strony motyw startowy to bardzo wyspecjalizowany model. Sprzyja pojedynczej stronie, ale nie zgadza się na wcześniejsze zmiany i wspólny kod. Gdy tylko dostosujesz motyw startowy do własnych potrzeb - cały ciężar przenoszenia i wprowadzania kodu spoczywa na tobie.

Nowszym trendem jest rozdzielanie frameworków na komponenty podobne do wtyczek zamiast całkowitego uruchamiania motywu nadrzędnego. Jeśli znasz Hybrid jako motyw nadrzędny, zajrzyj do Hybrid Core. Podejście to jest zasadniczo ulepszone w stosunku do nadrzędnego / podrzędnego, a aktualizacje uproszczone są łatwiejsze dzięki ograniczeniu do ram, a nie całego tematu.

W skrócie (tutaj trochę subiektywnie):

  • rozrusznik pasuje do poszczególnych stron
  • rodzic / dziecko pasuje do wielu witryn z niewielkim dostosowaniem
  • framework / rodzic / dziecko może dostosować się do wszystkiego i wszystkiego, ale jest również bardziej zaangażowany w rozwój
Rarst
źródło
Myślę, że dobrze to wytłumaczyłeś. W przypadku blogów model nadrzędny / podrzędny tematów działa dobrze. W przypadku budowy CMS lub aplikacji może to dość szybko stać się problematyczne.
Ray Gulick,
4

Głównym powodem korzystania z motywów nadrzędnych jest umożliwienie łatwiejszych aktualizacji - jeśli tylko weźmiesz motyw i edytujesz go bezpośrednio, to jeśli oryginalny motyw zostanie zaktualizowany, musisz ponownie zastosować wszelkie dokonane zmiany (lub scalić zmiany w oryginale z powrotem do zmodyfikowanego motywu).

anu
źródło