Wsparcie » Motywy » Pytania odnośnie motywu potomnego

  • michaha

    (@michaha)


    Witajcie 😉
    Ostatnio stworzyłem motyw potomny własnej stronki (colormag) , no bo wprowadzałem strasznie dużo zmian do kodu i nie szło po prostu tego naprawiac przy każdej aktualizacji. W motwie potomnym mam umieszczony jednie plik style.css, natomiast zmiany mam również w innych plikach.
    I teraz co doradzacie ?

    Czy jeśli mam np . wprowadzoną jedną zmianę w jakimś załóżmy php. to czy opłaca się z niego robić motyw potomny? Pytanie bierze się stąd że niewiem na jakie są skutki uboczne wykonywania motywów potomnych. Jeśli nie ma żadnych -to odpowiedź jest dla mnie prosta. W rezultacie większość plików u mnie należałaby do motywu potomnego.

    Bardzo proszę o doradzenie.

    Strona przy której potrzebuję pomocy: [zaloguj się aby zobaczyć ten link]

Viewing 15 replies - 16 through 30 (of 30 total)
  • Moderator Paweł Knapek

    (@adpawl)

    To da, że usunie atrybut xmlns z tagu HTML, którego czepiał się validator.

    Do potomnego nie wrzuca się pliku functions.php (w sensie nie wrzuca się tego z motywu głównego). Patrz co pisałem wcześniej w drugiej odpowiedzi bodajże -plik functions.php nie jest nadpisywany. Co znaczy, motyw potomny ma swój własny, motyw główny ma swój ….i oba działają jednocześnie.
    Fynctions.php childa ma być całkowicie pusty i wstawiasz do niego wyłącznie to, co potrzebujesz ….o ile potrzebujesz. Czyli głównie własne akcje, filtry etc.

    Nie kopiujesz functions.php z motywu głównego, bo będzie wysyp błędów i pad spowodowany błednymi ściezkami, zdublowanymi deklaracjami funkcji itd.

    Thread Starter michaha

    (@michaha)

    aha, a jak mam to załatwić aby nie modyfikować pliku function.php przy każdej aktualizacji wtyczki motywu?

    Moderator Paweł Knapek

    (@adpawl)

    Przecież motywu potomnego aktualizacje nie dotykają, wiec co wrzucisz w functions.php potomnego, to będzie w nim dalej i po aktualizacji.

    Thread Starter michaha

    (@michaha)

    Wiem, ale plik function.php mam w folderze z motywem pierwotnym. Dla jasności wrzuce screen jak to dokładnie u mnie wygląda 😉

    MOTYW POTOMNY
    motyw-potomny.jpg

    MOTYW PIERWOTNY
    motyw-pierwotny.jpg

    Czy w takim układzie mi nie nadpisze ?

    • Ta odpowiedź została zmodyfikowana 6 years temu przez michaha.
    • Ta odpowiedź została zmodyfikowana 6 years temu przez michaha.
    Moderator Paweł Knapek

    (@adpawl)

    Wiem, ale plik function.php mam w folderze z motywem pierwotnym

    Wiesz, ale chyba dalej nie rozumiesz. A tłukę o tym od samego początku.
    Tak, w motywie pierwotnym masz functions.php, musisz tam mieć i aktualizacje motywu go nadpisują.
    Motyw potomny zaś ma swój własny plik functions.php – on jednak nie zastępuje tego oryginalnego tak jak to ma miejsce z szablonami. On jest jest uruchamiany obok – czyli masz de facto dwa działające pliki functions.php, ten z motywu potomnego i w tle wykonujący się oryginalny. Wiec niezależnie od tego czy masz w potomnym plik functions.php, czy go nie masz (bo nie musisz mieć), ten oryginalny i tak zostanie wykonany.
    Masz zatem problem, a nawet dwa. 1. jak zmienić coś, co i tak się wykona. 2. ograniczenia narzucone przez PHP m.in. nie można wielokrotnie deklarować tej samej funkcji, klasy, stałej…
    Plikiem functions potomnego możesz pośrednio wpływać na sposób działania tego oryginalnego np. wypinać lub podmieniać style/skrypty (wp_deregister_style/script, wp_dequeue_style/script, wp_enqueue_style/script), możesz wyrejestrować akcje/filtry, zarejestrować własne (remove_action, remove_filter, add_action, add_filter).
    itd.

    Thread Starter michaha

    (@michaha)

    1. jak zmienić coś, co i tak się wykona.

    Tego problemu akurat nie rozumiem ;-P

    2. ograniczenia narzucone przez PHP m.in. nie można wielokrotnie deklarować tej samej funkcji, klasy, stałej…

    Czyli jak powinienem to rozwiązać ? Chodzi mi tylko o to żebym nie musiał przy każdej aktualizacji zmieniac function.php, wiesz o co mi chodzi… Jak to zrobić najłatwiej aby tylko raz wprowadzić te zmiany które dokonałem w function.php w motywie pierwotnym…

    Plikiem functions potomnego możesz pośrednio wpływać na sposób działania tego oryginalnego np. wypinać lub podmieniać style/skrypty (wp_deregister_style/script, wp_dequeue_style/script, wp_enqueue_style/script), możesz wyrejestrować akcje/filtry, zarejestrować własne (remove_action, remove_filter, add_action, add_filter).
    itd.

    A gdzie jest lokalizacja pliku function.php dla motywu potomnego ?

    • Ta odpowiedź została zmodyfikowana 6 years temu przez michaha.
    • Ta odpowiedź została zmodyfikowana 6 years temu przez michaha.
    • Ta odpowiedź została zmodyfikowana 6 years temu przez michaha.
    Moderator Paweł Knapek

    (@adpawl)

    1. no i tutaj właśnie potrzebna jest znajomość PHP i samego WordPressa od podszewki
    Jak chcesz korzystać z akcji i filtrów, jeżeli nie wiesz w jaki sposób one działają? A jak z funkcji, klas itd.?
    Tutaj przestaje działać proste kopiuj&wklej&zmień. Trzeba już rozumieć w jaki sposób coś funkcjonuje i co można z tym robić.
    ….czyli warto zacząć od kursu PHP, potem poznać mechanizmy WP – akcje, filtry, podstawowe funkcje…
    -tego wszystkiego nie da się wyłożyć w 2 zdaniach.

    2. no właśnie nie rusza się pliku functions.php motywu głównego, tylko ingeruje się z poziomu pliku functions motywu potomnego – głównie korzystając z akcji i filtrów. Więc patrz punkt 1.

    3. tworzysz go w motywie potomnym.

    Thread Starter michaha

    (@michaha)

    czyli nie da się tego zrobić z prosty sposób ? No u mnie kiepsko z .PHP

    Nadpisanie tego pliku w takim razie było trochę bez sensu… a jakieś inne rozwiązania są? Tam był jakiś błąd w kodzie motywu. Pisać do twórców ?

    • Ta odpowiedź została zmodyfikowana 6 years temu przez michaha.
    Moderator Paweł Knapek

    (@adpawl)

    To może napisz, co dokładnie chcesz zmienić.

    Thread Starter michaha

    (@michaha)

    Cześc nie mogłem wczoraj odpisać,

    ———————————————————————-
    <a href="https://themegrill.com/themes/colormag/" target="_blank" title="ThemeGrill" rel="designer noopener noreferrer"><span>

    Uważa że zła jest wartość rel=”designer” przy elemencie a
    ———————————————————————
    chodzi mi o to żeby poprawili ten błąd, czy jest sens pisać ? Na razie mam nadpisany plik function.php ale to do czasu najbliższej aktualizacji 😛

    Thread Starter michaha

    (@michaha)

    właśnie miałem aktualizacje motywu 😀

    Moderator Paweł Knapek

    (@adpawl)

    Toż przecież wcześniej już pisałem w jaki sposób możesz zmienić tekst w stopce.
    W plik functions.php MOTYWU POTOMNEGO wstawiasz:

    function colormag_footer_copyright() {
     echo 'Tutaj tekst/kod, który chcę mieć w mojej stopce';
    }
    Thread Starter michaha

    (@michaha)

    Wiem, ale chciałbym to mieć na stałe, anie co kilka dni wstawiać 😛 A dobrym pomysłem jest odłączyć motyw od aktualizacji ?

    Moderator Paweł Knapek

    (@adpawl)

    Litości, ile trzeba powtarzać, że AKTUALIZACJE NIE NADPISUJĄ MOTYWU POTOMNEGO – dlatego do jasnej ciasnej się z niego korzysta – motyw podstawowy można spokojnie aktualizować, a zmiany siedzą sobie w tym czasie nietknięte w potomnym.
    Koniec, kropka. Więcej już do tego tematu nie wracam.

    Thread Starter michaha

    (@michaha)

    Zależało mi jedynie na tym, aby ten błąd naprawić na stałe, a nie żeby Cię wkurzyć, ale OK napisałem już do twórców ColorMag, powiedzieli że poprawią przy najbliższej okazji.

Viewing 15 replies - 16 through 30 (of 30 total)
  • Temat ‘Pytania odnośnie motywu potomnego’ jest zamknięty na nowe odpowiedzi.