Autor | Zpráva | ||
---|---|---|---|
hellboy80 Profil |
#1 · Zasláno: 25. 9. 2015, 20:55:52
Ma tu nekdo zkusenosti s Worpdressem vytvarenim "child themes". Vim, jak v child sablone udelat zmeny v css, ale zajimalo by me, jestli lze skrz child sablonu delat i upravy v php. Pokud ano - jak? Diky za jakoukoliv pomoc :)
|
||
smitka Profil |
#2 · Zasláno: 27. 9. 2015, 13:30:17
Standardní soubory hierarchie šablony (developer.wordpress.org/themes/basics/template-hierarchy) stačí jen nakopírovat do složky z child theme. Výjimkou je functions.php, který se nepřepisuje, ale přidává k tomu rodičovskému.
Příklad - chci udělat úpravy v header.php - nakopíruji tedy z rodiče tento soubor do child a upravím. Další info: codex.wordpress.org/Child_Themes |
||
Časová prodleva: 4 dny
|
|||
hellboy80 Profil |
Diky. Funguje. Jeste se chci zeptat. Je nejak mozny tam vytvorit i zmeny v php souborech v podadresarich? Upravoval jsem jeden php soubor v podadresarich "inc/widgets". Kdyz v child theme vytvorim adresare "inc/widgets" a prekopuruju do nich ten soubor, tak ty zmeny nevidim. Jak na to?
|
||
smitka Profil |
#4 · Zasláno: 1. 10. 2015, 22:03:05
Funguje to jen na soubory té základní hierarchie. Pro podsložky je potřeba najít kde se načítají v těch základních (většinou ve functions.php) často něco podobného:
if ( ! function_exists( 'nacti_ty_soubory' ) ): function nacti_ty_soubory() { ... include(get_template_directory()."/lib/widgets.php"); ... } endif; Pak je třeba tu funkci překopírovat do functions.php v child a u souboru, který se má načíst od jinud změnit get_template_directory na get_stylesheet_directory. Některé šablony to mají vyřešeno jinak, buď to rovnou samy detekují, nebo někde definují konstanty s cestami k jednotlivým souborům, je třeba to prozkoumat. |
||
Časová prodleva: 5 dní
|
|||
hellboy80 Profil |
Diky. Upravoval jsem tenhle soubor:
/inc/widgets/widget-category-posts-single.php Ve functions.php puvodni sablony je tenhle radek: require( get_template_directory() . '/inc/widgets/widget-category-posts-single.php' ); Staci ho tedy prekopirovat? Nebo ho mam vlozit do toho vyse uvedenyho kodu? if ( ! function_exists( 'nacti_ty_soubory' ) ): function nacti_ty_soubory() { ... inculde( get_template_directory() . '/inc/widgets/widget-category-posts-single.php' ); ... } endif; V php jsem amater, proto se tak hloupe ptam :) |
||
Vendy Profil |
#6 · Zasláno: 6. 10. 2015, 23:53:43
smitka:
„Příklad - chci udělat úpravy v header.php - nakopíruji tedy z rodiče tento soubor do child a upravím.“ Já jsem před časem řešila totéž a přímo z WP Helpdesk mi bylo doporučeno nekopírovat, protože při následných opravách mi zůstanou neopravené části. Fungovat to chvíli bude, ale časem to může dělat problémy. |
||
smitka Profil |
hellboy80:
To require by mělo být součástí nějaké funkce, která by před sebou měla mít test její existence (function_exists), pokud tomu tak není, tak šablona pravděpodobně není plně připravená na používání child themes (může to být ale řešeno i jinak, například přímo v includovaném souboru). Toto bych řešil přímo s tvůrcem šablony, aby ji upravil tak, aby bylo možné v child themes upravovat i tyto soubory (pokud je tvůrce solidní, tak často vyjde vstříc, řešil jsem to takto již několikrát). Pokud je toto načítání obaleno if ( ! function_exists...) tak by mělo stačit vzít celý tento kód a změnit načítání požadavaného souboru na: require( get_stylesheet_directory . '/inc/widgets/widget-category-posts-single.php' ); Vendy: WP Helpdesk neznám, ale tento způsob vytváření je doporučený postup dle oficiálního WordPress Codexu. V souborech "designu" (například právě header.php, footer.php, ...) je u většiny normálních šablon velmi málo vlastního PHP kódu - většinou se volají funkce z functions.php - a verzi od verze se dobře navržené šablony v těchto souborech prakticky nemění. Toto je i důvod, proč se soubor functions.php nepřepisuje celý, ale pouze doplňuje k původnímu, který se aktualizuje. Riziko zde samozřejmě při použití nekvalitní šablony je, ale je neporovnatelně menší než provedení úpravy v originálních souborech a následném neaktualizování celé šablony. |
||
Časová prodleva: 9 let
|
0