Úvodní stránka › Fórum podpory WordPressu › Šablony, CSS (zobrazení webu) › Unhook php souborů
Štítky: CSS, excerpt_length, filemtime(), functions.php, Interface, Loco Translate, Odvozená šablona, style.css
Zvolené téma obsahuje celkem 31 odpovědí. Do diskuze (2 účastníci) se naposledy zapojil uživatel Jacob8 a poslední změna je stará 7 let, 9 měsíců.
-
AutorPříspěvky
-
10. února 2016 (11:43) #26487
Dobrý den,
ve WordPressu mám staženou free šablonu Interface. Vytvořil jsem si také Child Theme, včetně souborů style.css a functions.php.
Úprava v style.css se promítla v Child Theme. Ovšem úprava ve functions.php nikoliv. Navštívil jsem support šablony Interface i pročetl různé weby a zjistil jsem nemilou věc. Php soubory jsou tzv. zaHOOKované.
Našel jsem i nějaké návody (3 způsoby) na unhook včetně ukázky unhookované souboru 404.php na fóru podpory.
Bohužel, jakožto laik nejsem schopný provést unhook.
Dokázal by mi prosím někdo pomoci s unhookem souborů?
Jacob8
10. února 2016 (11:57) #26488Nejsem si bohužel jist, co tím máte přesně na mysli, můžete se dát nějaký odkaz přímo na téma, kde to autoři šablony vysvětlují (nebo manuál), abych to nemusel hledat?
10. února 2016 (13:11) #26489No jde o to, že když vložím upravený kód do functions.php v Child Theme, tak se změna nepromítne. Pokud kód upravím v Parent Child, tak se změna projeví.
Níže dávám odkaz na ten návod.
a zde je diskuze ve fóru, kde reagoval autor šablony
10. února 2016 (14:45) #26498Aha, takže používáte šablonu Interface, která obsahuje mnoho hooků pro potenciální úpravy šablony. Osobně to považuji za velkou výhodu šablony, ale je to bohužel také trochu složitější způsob. Není to ale tak, že se nahrazují celé
.php
soubory, ale pouze jednotlivé části, u kterých to autor umožnil. Bohužel tam je dost složité, jak to celé popsat a nejlépe se to asi vysvětluje na nějakém příkladu. Co chcete konkrétně na webu změnit? A jak jste to upravil a co tam konkrétně nefunguje?10. února 2016 (16:42) #26500No udělal sem dvě úpravy přímo v Parent šabloně (v souborech functions.php a header.php). 1) změnil sem excerpt lenght z 50 slov na 20 a přepsal EN text odkazovacího tlačítka ”read more”.
Jakmile, ale zaktualizuji šablonu tak je mi jasné, že úpravy zmizí. Chtěl jsem ještě změnit barvu webu, upravit zápatí. To jsou pro mě aktuálně nejdůležitější úpravy.
Samozřejmě bych měl rád možnost provést drobné změny i v budoucnu.Výše zmíněné úpravy bych rád provedl přes Child Theme, ale nevím jak by měl vypadat kód. =(
PŘÍKLAD
<?php add_filter( 'excerpt_length', 'interface_excerpt_length' ); function interface_excerpt_length( $length ) { return 20; // this will return 50 words in the excerpt } ?>
10. února 2016 (18:13) #26506A když jste uvedenou ukázku kódu vložil do odvozené šablony, tak to nefungovalo? Filtr
excerpt_length
(manuál) by měl fungovat v tomto případě bez problémů, zkuste ale zvýšit prioritu, aby se spouštěl později:add_filter( 'excerpt_length', 'interface_excerpt_length', 999 );
Zápatí by mělo jít také změnit bez větších problémů, celý soubor footer.php je prošpikován různými hooky. Ale chtělo by to abyste napsal, co konkrétně tma je potřeba změnit, klidně i s odkazem na web nebo screenshotem.
10. února 2016 (21:20) #26515Zkusil sem zvýšit prioritu, ale bez úspěchu.
Na fóru jsem narazil ještě na tento post. Jestli sem dobře překládal, tak se to dotyčnému podařilo, ovšem nejsem si jist jak přesně.
http://themehorse.com/support-forum/topic/loading-header-extension-php-in-child-theme/#post-27641
Podle mě se musí do Child Theme vložit nějaký další kód, který unhookne funkci úpravy.
V patičce potřebuji smazat
| Theme by: Theme Horse | Powered by: WordPress
.
Ještě jsem to nezkoušel, ale myslím si, že to taky nepůjde. Dokud nezruším ten ”hook”.10. února 2016 (21:32) #26518V odkazovaném textu vůbec neřeší filtr
excerpt_length
, ale nějaké jiné akce? Můžete prosím vzít celou odvozenou šablonu (i s adresářem), zabalit ji do jednoho malého .zip souboru a nahrát mi ji sem? Zkusím si to zprovoznit na localhostu a podívat se v čem je problém…10. února 2016 (21:53) #26522Exerpt_lenght neřešili, ale šlo o možnost úpravy šablony v Child Theme, pochopil-li sem to správně.
Jak to myslíte i s adresářem? Celou složku
wp-content
?10. února 2016 (22:08) #26524Jak to myslíte i s adresářem? Celou složku wp-content?
Ne ne, jen složku, kde máte odvozenou šablonu, patrně
wp-content/themes/neco-child
.10. února 2016 (22:20) #26525Vím, že ve
style.css
by asi neměly být všechny kódy. Původně jsem tam měl jen kód pro úpravu velikosti písma.Attachments:
11. února 2016 (22:04) #26544Tak už to asi vidím… Proč máte soubor
functions.php
v adresářiinterface-child/inc/functions/
? Zkopírujte ho rovnou do adresářeinterface-child
na stejnou úroveň jakostyle.css
.Následně začne být teprve načítán a objeví se ihned dvě chyby:
– Před číslem 999 chybí čárka (číslo ale můžete zkusit zcela smazat).
– Musíte použít jiný název funkce než
interface_excerpt_length()
, třebainterface_child_excerpt_length()
, protože byl stejný název už jednou použit.11. února 2016 (23:13) #26549Vy jste úžasný! Funguje to! =)
Prvně jsem dal
functions.php
na stejnou úroveň jakostyle.css
, číslo 999 smazal a funkci přepsal. Nestalo se nic.
Zkusil jsem teda přepsat i filter, ale taky nic. Přidal jsem ještě 999 a pak se to povedlo. =)Jinak Parent šablona má 2 soubory
functions.php
. Jeden na úrovnistyle.css
a druhy ve složce inc (obsahujeexcerpt_lenght
, atd.). Proto jsem ho tam dal. Když byl na úrovnistyle.css
tak mi to hlásilo chybu Cannot redeclare interface excerpt_length interface theme. To bylo, ale tím, že jsem tam měl nejspíš chybu.Stejný psotup by měl fungovat i na
header.php
nebofooter.php
?Asi to bude na novou diskuzi, ale ve
style.css
jsem přepsal kódy pro zelenou barvu, ale žádná změna se nekonala.? Ještě to zkusím, ale prozkoumat.Jinak děkuji moc za Váš čas a pomoc. =)
12. února 2016 (19:04) #26557Tak už to začíná dávat smysl :-) Už vidím, kde jste vzal tu funkci i druhý soubor
functions.php
. Nejdříve se ale načte soubor z odvozené šablony a až poté z rodičovské, takže když má filtrexcerpt_length
stejnou defaultní prioritu 10, tak se použije ten druhý načtený (tedy z rodičovské šablony). Mělo by ale stačit změnit prioritu na hodnotu 11, číslo 999 je zbytečně vysoké (ale nevadí).Ano, podobný postup bude platit na další funkce v záhlaví a zápatí. Ale tam musíte použít výše odkazované triky, kdy u akcí nejdříve odstraníte defaultní hooky a následně doplníte vlastní. Zkuste schválně takto změnit text v zápatí, případně napište když to nepůjde, dáme to nějak dohromady… Naučit se pracovat s odvozenou šablonou za to stojí, i když to vypadá zpočátku dost složitě :-)
Máte příklad změněné barvy v souboru
style.css
? Tam by to neměl být problém, naopak je tento soubor načítán dříve než z rodičovské šablony…14. února 2016 (10:45) #26570Tak jsem téměř celou sobotu strávil hledáním informací a zkoušením změnou kódů, ale bezúspěšně.
Co se týče barev, tak bych potřeboval nahradit všechnu zelenou (#63c6ae) za jinou (#7c313d). Eventuelně tu vínovou kdykoli změnit za jinou.
Bude to ale nejspíš drbačka trochu. =(
Zkusil sem dostyle.css
vložit kód pro změnu barvy, ale nic se nestalo. Barvu jsem se snažil změnit i přímo v rodičovské šabloně, ale bez výsledku.Kódy pro změnu barvy, které jsem vkládal do
style.css
v child theme:/* Slogan */ .slogan-wrap { background-color: #7c313d; background-color: rgba (124, 49, 61, 0.9); } /* Readmore */ a.readmore { background-color: rgba (124, 49, 61, 0.8); }
Bohužel jsem laik a moc tomu nerozumím. =/
Jinak prioritní číslo jsem upravil na 11 a funguje. =)
Zkoušel jsem v
interface_widgets.php
změnit “Read more” na “Přečíst”, ale vůbec netuším jak by měl vypadat upravený kód.<article> <?php the_excerpt(); ?> </article> <a class="more-link" title="<?php the_title_attribute(); ?>" href="<?php the_permalink(); ?>"> <?php _e( 'Read more','interface' ); ?> </a> </div>
Pomohl byste mi prosím? Rád Vás i nějak podpořim. Jde to pouze přes “Donate” – paypal?
26. února 2016 (14:35) #26752Pojďme na to :-) Začneme s barvami, díval jsem se, že to má šablona natvrdo v souboru
style.css
a nemá žádnou možnost nastavení, což je docela škoda, protože ta barva je definována asi na 40 místech :-(Budete muset vzít všechny výskyty a zkopírovat je do souboru
style.css
v odvozené šabloně. Potom to ale můžete v tomto souboru už hromadně nahradit.Když jsem tam vložil následující kód, tak to fungovalo a barva odkazu se změnila:
/* Readmore */ a.readmore { background-color: rgba(124, 49, 61, 0.8); }
Pozor, nesmí tam být před závorkou mezera navíc, tedy nikoli
rgba (124, 49, 61, 0.8)
alergba(124, 49, 61, 0.8)
.26. února 2016 (15:37) #26757Tak jsem to udělal přesně podle Vaší rady (zrušil mezeru – zkopíroval celý kód) a nic se nestalo =(
Přitom jsem si ve
style.css
už upravil velikost písma a vše ok.26. února 2016 (17:31) #26758Tak to je podivné, v tom souboru mám pouze uvedený kód a před ním ještě toto:
@import url("../interface/style.css");
(nebo ještě lépe můžete použít toto)
A barva se změnila. Nemůžete to mít cachované v prohlížeči, zkuste ještě anonymní okno.
26. února 2016 (17:59) #26760Ani ve Firefoxu ani v anonymním okně to nic neudělalo. Zkusil sem kód barvy změnit v rodičovské šabloně, ale žádná změna. Netuším proč.
Nemůže to blokovat nějaký plugin nebo je potřeba udělat znovu unhook? Viz. (pokud jsem to pochopil)
http://themehorse.com/support-forum/topic/how-is-style-css-called-by-interface/Barvu jsem zkusil změnit přes ”prozkoumat prvek’‘, přepsal sem kód barvy a šlo to.
26. února 2016 (18:04) #26762 -
AutorPříspěvky
Pokud chcete odpovědět na toto téma, musíte se nejdříve přihlásit.