Cała dokumentacja, którą napotkałem, omawia nadpisywanie funkcji wtykowych za pośrednictwem wtyczki.
Co jeśli zamiast tego zajmujesz się tworzeniem motywów?
Moje funkcje.php wymagają innego pliku, który przesłania get_user_by()
funkcję zdefiniowaną w pluggable.php
.
Jeśli if( function_exists() )
pominę połączenie, pojawia się błąd „Nie można ponownie ustalić ...”.
Jeśli dołączę if( function exists() )
wywołanie, nie otrzymam błędu, ale oczywiście moja funkcja zostanie zignorowana, ponieważ istnieje wersja wtykowa.
W oparciu o niesamowity post Dominica na temat kolejności uruchamiania WordPress , jasne pluggable.php
jest, że jest ładowany przed motywem functions.php
i tak dalej, więc wyjaśnia to błąd.
Pytanie brzmi: w jaki sposób można skorzystać z tej ładnej architektury wtykanej z poziomu motywu, bez uciekania się do pisania wtyczek, które następnie muszą zostać dołączone lub zainstalowane razem z motywem?
Dalsze uwagi : Wydaje się, że argumentem jest to, że motywy nie powinny próbować robić tego, co robią wtyczki. Ale ten argument ma ponad cztery lata (zgodnie z 4-cyfrowym numerem śledzenia). Chciałbym usłyszeć od niektórych ciężkich hitterów, czy ta filozofia nadal ma zastosowanie, biorąc pod uwagę złożoną topologię dzisiejszego krajobrazu rozwoju tematu. Chciałbym wierzyć, że ewoluowaliśmy od tego czasu.
Kontekst : Opracowuję jednorazowe rozwiązanie CMS dla klienta z dużą ilością niestandardowych metadanych, dostosowywanie zaplecza administratora, proces logowania / uwierzytelniania, działa. I oczywiście jest element projektu - tam właśnie pojawia się część tematyczna. Faktem jest, że po prostu nie są to komponenty wielokrotnego użytku - nigdy nie będą miały zastosowania do innego klienta, nigdy nie zostaną objęte GPL i będą dostępne na zasadzie open source, i są najbardziej z pewnością nie będzie dystrybuowany / instalowany w innych wdrożeniach WordPress. W najlepszym razie są pewne najlepsze praktyki, które wykorzystam w przyszłych projektach, ale będzie to ściśle praca referencyjna / kopiuj-wklej.
To nie brzmi jak przypadek użycia wtyczek. Motyw jest zainstalowany, być może jest to motyw podrzędny Twenty Eleven, może samodzielny, jego funkcje.php wywołuje w zestawie zawierającym wiele elementów, z których każdy obsługuje inny aspekt danego CMS. Następnie pliki szablonów motywu używają niestandardowych „znaczników szablonu” zdefiniowanych w dołączeniach. Nie chcę mieć plików motywów zależnych od aktywacji jakiejś wtyczki lub innej itp. Po prostu nie ma sensu budować złożoności systemu. Jasne, mogę umieścić go w folderze wtyczek, których należy używać, ale nadal jest to hack - w tej chwili wszystko , co ma związek z dostosowaniami dokonanymi dla tego projektu, jest zawarte wp-content/themes/my-theme/
. Nie chcę też rozważać szukania rzeczy w niektórych folderach wtyczek.
Nie zrozum mnie źle. Uwielbiam wtyczki, używam ich i piszę. I używam wtyczek w połączeniu z tego rodzaju wysoce niestandardowym opracowywaniem motywów, gdy wtyczka jest dostarczana przez firmę zewnętrzną i reprezentuje najlepsze praktyki daleko wykraczające poza to, co mógłbym wprowadzić w rozsądnym czasie. Ale kiedy muszę zmodyfikować podstawową funkcjonalność dla jednorazowego scenariusza, przechodzę do haków akcji, haków filtrów i chciałbym móc polegać na funkcjach wtykowych dla strony użytkownika i uwierzytelniania.