Czy istnieje jakiś globalny rodzaj pliku functions.php, który działa dla dowolnego motywu?
Problem jest tutaj:
Kiedy zmieniam plik functions.php w dowolnym motywie, muszę zadbać o dwie zmiany: Najpierw muszę zająć się aktualizacjami tego motywu. Po drugie, muszę zająć się zmianą motywu strony.
Czy zamiast wprowadzania zmian w pliku functions.php w kompozycji, można wprowadzić zmiany w niektórych plikach funkcji.php, które są niezależne od jakiegokolwiek motywu?
Odpowiedzi:
Różnica między motywem a kodem innym niż motyw jest raczej organizacyjna niż techniczna. Aktywny kod przyczynia się do powstania środowiska, bez względu na to, skąd jest ładowany.
Istnieje wiele miejsc, z których pobierany jest kod, które nie są częścią rdzenia WordPress:
wp-config.php
plik konfiguracyjnyTypowym miejscem na własny kod, który nie powinien być częścią motywu, jest stworzenie wtyczki. Inne podejścia nie mają korzyści z ogólnego przypadku, ale utracili interfejs (zarządzanie przez obszar administratora) i techniczne (zdarzenia aktywacji / dezaktywacji / odinstalowania) wygody normalnej wtyczki.
źródło
functions.php
, lub 2) utwórz niestandardową wtyczkę, aby pomieścić tę funkcjonalność, aby była przenośna między różnymi motywami.Template:
znacznik w motywie podrzędnymstyle.css
.Cóż, to jest prawdziwy problem i wiele osób staje przed nim, kiedy zmieniają temat, ale istnieją proste rozwiązania.
dodaj tę funkcję do nowej strony, nie działa .
Aby zrozumieć, która wtyczka jest przeznaczona do tego, czego nie przegap, nadaj jej nazwę, np .:
źródło
Jako dodatek do odpowiedzi @MBTheDeveloper.
Inne opcje to:
include
w pliku php funkcji motywów i załaduj plik custom-function.php, który zawiera niestandardowy kod.źródło
Nie wprowadzaj specyficznych dla witryny zmian w pliku functions.php kompozycji.
Zamiast tego utwórz wtyczkę specyficzną dla witryny. Lubię używać nazwy domeny witryny, np. „Ottopress.com”. Następnie włóż fragmenty kodu do tej wtyczki i pozostaw aktywne tylko w tej witrynie.
Alternatywnie, jeśli masz fragment powiązanych zmian, utwórz dla nich specjalną wtyczkę. Daje to opcję włączania / wyłączania powiązanych fragmentów kodu w razie potrzeby.
źródło
Niektóre wyjaśnienia
Najpierw musisz zrozumieć cel funkcji.php w kompozycji. Functions.php to po prostu plik wtyczki bez nazwy, który jeśli jest obecny, jest automatycznie ładowany przez Wordpress. Wordpress ładuje bieżący plik theme.php dla stron frontonu oraz stron back-endowych (admin).
Nie ma różnicy między wtyczką a funkcjami. Php z wyjątkiem tego, że wtyczki mają nazwę i można je aktywować / dezaktywować niezależnie od innych wtyczek i motywów. Funtions.php jest dołączony do bieżącego motywu, a jeśli przełączysz się na inny motyw, Wordpress użyje funkcji nowego motywu. Php, a nie starych funkcji .php z niestandardowymi modyfikacjami.
Aktualizacje motywów również zastępują funkcje.php i nie ma sposobu, aby tego uniknąć, nawet jeśli umieścisz niestandardowe modyfikacje w osobnych plikach kodu i umieścisz je w pliku fucntions.php, będziesz musiał dodać tę linię dołączania po każdej aktualizacji.
Zasadniczo typ kodu, który powinien przejść w functions.php:
Jak chcesz zachować niestandardowe modyfikacje, nawet jeśli zmienisz motywy. Ponieważ motyw potomny nie będzie działał w tym przypadku, ponieważ zmienisz motyw, a funkcje. Php motywu potomnego nie będą używane.
Rozwiązanie
Jedynym rozwiązaniem zalecanym przez @Otto jest utworzenie pliku wtyczki. Podejście, które możesz zastosować, aby utworzyć wtyczkę specyficzną dla witryny, polega na utworzeniu folderu z nazwą witryny w „wp-content / plugins” i utworzeniu w nim plików wtyczek.
Dlaczego pliki wtyczek? a nie pojedynczy plik wtyczki.
Zgrupuj funkcjonalność strony związanej z kodem w osobnych plikach wtyczek i nie zapomnij dodać nagłówka wtyczki do wszystkich plików wtyczek, aby były one rozpoznawane przez Wordpress jako osobne wtyczki. Będziesz wtedy mógł aktywować / dezaktywować różne funkcje / funkcjonalność swojej strony bez niszczenia wszystkiego.
źródło