Skocz do zawartości
Piotr GRD

Re: Wordpress - stworzenie Child Theme @kacper3355

Polecane posty

Ten temat jest (darmową) odpowiedzią na temat: Wordpress - stworzenie Child Theme napisany przez @kacper3355

 

 

Nie rozumiem osób, które korzystają z wtyczek do tego, jeśli "ręcznie" jest to banalnie proste.

Źródło porad i bardziej szczegółowe informacje: https://codex.wordpress.org/Child_Themes

 

 

Tworzenie "child theme".

 

Stwórz nowy katalog wewnątrz "wp-content/themes", nazwa katalogu może być dowolnie wybrana przez Ciebie. Wewnątrz tego katalogu obecne muszą być dwa pliki: "style.css" i "functions.php".

 

W pliku "style.css" umieść następującą zawartość:

 

/*
Theme Name:     ORYGINALNY THEME Child
Description:    Child theme for the ORYGINALNY THEME
Template:       ORYGINALNYTHEMEFOLDER                          
*/
@import url("../ORYGINALNYTHEMEFOLDER/style.css");

Zamień "ORYGINALNYTHEMEFOLDER" poprzez rzeczywistą nazwę folderu ze swoim oryginalnym motywem.

 

Teraz wejdź do panelu Wordpressa, do zarządzania motywami i wybierz swój nowy motyw "ORYGINALNY THEME Child". I już, "Child Theme" działa.

 

 

Jak wykonywać zmiany?

 

Zmiany CSS dodawaj w utworzonym powyżej pliku "style.css" !poniżej! "@import". Jeśli ma to być modyfikacja istniejącego oryginalnego stylu, skopiuj wybrany fragment z oryginału i zmieniony umieść w "dziecku".

 

Zmiany funkcji dodawaj w "functions.php". Plik "functions.php" "dziecka" jest wczytywany najpierw, plik "functions.php" nadrzędnego stylu w drugiej kolejności. To istotne w przypadku tworzenia funkcji o tej samej nazwie, o tym samym zastosowaniu.

 

Zmiany w pozostałych plikach (page.php, header.php, footer.php itd.) dokonuj poprzez skopiowanie oryginalnego nadrzędnego pliku do folderu "dziecka" i wykonanie zmian w tejże "dziecięcej" kopii. Wszystkie te pliki (poza style.css i functions.php) jeśli istnieją, są pobierane z folderu "dziecka", jeśli nie istnieją, wówczas używane są te z nadrzędnego oryginału.

 

 

Aktualizacje

 

Aktualizacje nadrzędnego motywu mogą być bezproblemowo wykonywane i nie mają wpływu na "dziecko" do czasu, gdy są to zmiany "kosmetyczne". Jeśli jakiś nadrzędny motyw zmieni się w sposób znaczący, w szczególności jeśli zmieni się struktura plików tego nadrzędnego motywu, nasze "dziecko" może już nie pasować.

 

 

WAŻNE

 

Opisany przeze mnie sposób tworzenia "dziecka" jest sposobem najłatwiejszym, ale przestarzałym, nieoptymalnym (chodzi o "@import" w CSS). Sposób nowszy, zalecany, optymalny jest nieco bardziej skomplikowany odnośnie wskazywania używanych plików CSS motywu nadrzędnego i dziecka, do tego odnoszą się te nieco skomplikowane opisy używania "wp_enqueue_scripts" i "wp_enqueue_style" w pliku "functions.php" w tekście, do którego umieściłem powyżej link. Nie ma jednak najmniejszego problemu, by sposób ten zastosować później, gdy "child theme" będzie już zawierał modyfikacje.

 

 

 

Uwagi, aby ułatwić sobie pracę

 

Dobrze jest - czy to w stylu CSS czy to w plikach PHP - umieszczać komentarze, czego dotyczy zmiana. Gwarantuję, że po kilku latach i naniesieniu kilkudziesięciu drobnych zmian może okazać się, że bez komentarzy nie ogarniemy wszystkiego, lub zajmie nam to znacznie więcej czasu. Zapomnijmy o łatwym połapaniu się w kodzie bez komentarzy, jeśli operować będzie na nim kilka osób.

 

Przy przesyłaniu plików poprzez FTP dobrze używać jest trybu binarnego (nie tekstowego). Zamiana znaków końca linii pomiędzy systemami w trybie tekstowym nie zawsze działa jak należy, czasami następuje "rozstrzelenie" kodu w co drugą linijkę, poza tym tracimy możliwość porównywania plików na podstawie rozmiaru w bajtach.

 

Dobrze - moim zdaniem - jest również zachowywać datę modyfikacji pliku przy kopiowaniu go z serwera na dysk lokalny lub przy tworzeniu kopii zapasowej. Przy tworzeniu archiwów tar.gz bezpośrednio na serwerze nie ma z tym problemu, ale przy przesyłaniu przez FTP należy zaznaczyć odpowiednią opcję w używanym oprogramowaniu. Umożliwia to porównywanie plików na podstawie daty modyfikacji - które kiedy i czy w ogóle zmienialiśmy.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Hej. Dziękuje bardzo za odpowiedź!

W moim przypadku niestety powyższe rady nie działają. Cały czas wszystko jest zrobione, tak jak podałeś, ale niestety nic to nie daje - dziwne, bo inne szablony działają w ten sposób świetnie. Próbowałem dodawać skrypty z codexu do pliku functions.php, ale niestety też nie działa. :/ Gdyby to było takie proste, to nawet ja bym sobie z tym poradził :P Nigdy nie miałem takiego problemu i jestem w kropce.

Udostępnij ten post


Link to postu
Udostępnij na innych stronach
mój bazowy child style.css i function.php
---------------------

style.css

 

/*
Theme Name: irebu.pl - child
Author: iREBU Agencja Interaktywna
Author URI: https://irebu.pl
Version: 1.0.0
Template: irebu.pl
*/
---------------------
functions.php
<?php
function enqueue_parent_styles() {
wp_enqueue_style( 'parent-style', get_stylesheet_directory_uri().'/style.css' );
}
add_action('wp_enqueue_scripts', 'enqueue_parent_styles');

 

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Czyżby motyw, który kupiłeś, miał w sobie zaszyte jakieś "anty-childowe" zabezpieczenie? Jeśli wszystko jest jak należy i identyczny sposób działa w przypadku innych motywów, to inaczej wytłumaczyć tego nie potrafię.

Teoretycznie wyobrażam sobie, że możliwe jest zakodowanie czegoś takiego (choć nie wiem dokładnie jak, trzeba by się wgryźć dokładnie w sposób obsługi motywów przez Wordpress), ale nie rozumiem po co miałby to ktoś robić. Widywałem już zakodowane fragmenty motywów Wordpressa tak, aby niemożliwe było łatwe usunięcie linku autora ze stopki itp., ale...

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

@irebu

 

Dokładnie w taki sposób próbowałem.

 

@Piotr GRD

Też mi się to wydaje strasznie dziwne. Motyw kosztował prawie 200 zł, więc ciężko mi sobie wyobrazić żebym nie mógł go dostosować pod siebie...

 

Jeśli ktoś z Was chciałby zobaczyć to na własne oczy, to mogę podesłać dane dostępu do strony. Tak dziwnej akcji z Wordpressem jeszcze nie miałem... W dodatku autor ledwie piszę po Polsku i ciężko się z nim dogadać...

Edytowano przez kacper3355 (zobacz historię edycji)

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

hej, bardzo ciekawy wpis, że też chcialo Ci sie to pisać skoro mozan to samo znaleźć w sieci, pozdrawiam :)

Udostępnij ten post


Link to postu
Udostępnij na innych stronach

Bądź aktywny! Zaloguj się lub utwórz konto

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony

Utwórz konto

Zarejestruj nowe konto, to proste!

Zarejestruj nowe konto

Zaloguj się

Posiadasz własne konto? Użyj go!

Zaloguj się


×